Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2010

План

Полезные ссылки

Встроенные декораторы в питоне

staticmethod
про это расскажет Саша на следующем занятии
classmethod
про это расскажет Саша на следующем занятии
property
про это расскажет Саша на следующем занятии
contextlib.contextmanager
как просто делать свои обработчики входа и выхода для with
functools.wraps
вспомогательная обёртка для создания декораторов (копирует самодокументацию и пр.)

Идеи для декораторов

logging
записывать вызов и, например, аргументы функции в лог
profiling
записывать в лог длительность исполнения функции или суммарную длительность всех исполнений или суммарную длительность исполнений с одинаковыми аргументами
memoizing
запоминать результаты функции для заданного набора аргументов, чтобы не пересчитывать заново
once / lazyproperty
первый раз вызывать вычисление функции, последующие разы возвращать первый результат (фактически, синоним memoizing для функции без аргументов)
alias
создавать функцию сразу с несколькими именами
curry
создавать функцию, которая умеет выполнять операцию частичного вызова
typecheck
проверять типы аргументов функции (в момент вызова)
multimethod
выбирать, какое тело функции исполнять, в зависимости от типов аргументов
transaction
следить, чтобы все части действия либо выполнились вместе, либо из них не выполнилась ни одна; записывать информацию о совершённом действии так, чтобы его было легко отменить (это очень специфично в зависимости от конкретной области применения)
check_access
проверять права доступа перед исполнением функции