Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆6👍4🍾1
def print_argument(func):
def wrapper(the_number):
print("Argument for",
func.__name__,
"is", the_number)
return func(the_number)
return wrapper
@print_argument
def add_one(x):
return x + 1
print(add_one(1))
Внутри
print_argument
мы определяем функцию-обертку. Она выводит аргумент и имя вызываемой функции, выполняет фактическую функцию и возвращает ее результат, как если бы функция вызывалась «обычно».@print_argument
мы применяем наш декоратор к функции. Декоратор может быть повторно использован и для других функций.Argument for add_one is 1
2
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🏆1🍾1
Кэширование — это техника, которая позволяет значительно улучшить производительность, сохраняя результаты вызовов функций и возвращая кэшированные результаты для одинаковых входных данных.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🍾2🏆1
🗣️ С их помощью можно реализовать ленивую инициализацию свойств, что особенно полезно для дорогостоящих операций, которые нужно выполнять только при первом обращении к свойству
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
🏆6👍4🍾2
🤔10🍾7👍6
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ:
Anonymous Quiz
37%
global inner global
27%
global outer global
28%
global inner inner
8%
outer inner global
🍾13👍6🤔2
Иногда необходимо кэшировать результаты функции для повышения производительности, особенно если функция выполняет тяжелые вычисления или обращения к внешним ресурсам.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔1🏆1🆒1
Генераторы в Python позволяют создавать ленивые последовательности, которые вычисляются по мере необходимости.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7😱1🏆1🍾1
Продвинутые программисты могут использовать модификацию байт-кода для изменения поведения функции на низком уровне.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🏆1🍾1
Иногда требуется ограничить время выполнения функции, чтобы предотвратить зависание или длительное выполнение задачи.
signal
для установки тайм-аутов на выполнение кода.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🍾2😁1🏆1🗿1🆒1
Чтобы извлечь уникальные элементы, сохраняя их порядок, можно использовать следующую технику:
•
Используем список для обхода элементов и set, чтобы отслеживать уже встреченные элементы, избегая их дублирования.•
Используем однострочный list comprehension с условием, которое добавляет элемент в результирующий список только если он ещё не был добавлен.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🏆2🍾1
Иногда бывает нужно создать собственный контекстный менеджер для управления ресурсами, такими как файлы или сетевые соединения.
contextlib.contextmanager
, что делает код простым и элегантным.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4⚡1🏆1🍾1
В Python можно легко измерять время выполнения функций с помощью декораторов. Этот подход удобен для анализа производительности и оптимизации кода.
•
Декоратор оборачивает функцию и измеряет время ее выполнения, выводя результат на экран. Это позволяет легко оценить производительность различных участков кода.•
Декоратор time_it
может использоваться для любых функций, без изменения их логики, что делает его удобным инструментом для анализа производительности.Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🏆2⚡1🍾1
В Python 3.7 и выше можно использовать модуль
dataclasses
для создания простых классов данных. Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🏆1🍾1
🤔8😢3🍾3👍2🗿1
В Python есть мощный модуль
inspect
, который позволяет проводить динамический анализ кода.🗣️ С его помощью можно извлекать информацию о функциях, классах и их параметрах прямо во время выполнения программы. Это полезно для создания гибких и адаптивных систем.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6👍4💯1🏆1🍾1
__hash__
и __eq__
В Python можно управлять тем, как объекты сравниваются и хэшируются, путем реализации методов
__hash__
и __eq__
.🗣️ Это особенно полезно при использовании объектов в качестве ключей в словарях или элементов в множествах, где требуется уникальность.
Python Learning
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🏆1🍾1