tgoop.com/BookPython/3320
Create:
Last Update:
Last Update:
Известный синтаксис декораторов в Python (@this_one
) — это способ вызова функции высшего порядка. Раньше людям приходилось делать это вручную:
# prior to Python 2.4
def query():
pass
query = atomic(query)
# now
@atomic
def query():
pass
По сути, идентификатор после
@
— это то, что будет вызвано. Можно также использовать идентификатор со скобками (@atomic(skip_errors=True)
), что обычно используется для параметризированных декораторов. Также работает что-то вроде @decorators.db.atomic(True)
. Кажется, что любой вид выражения можно использовать в качестве декоратора, но это не так. После @
должен следовать один «дот-идентификатор» (например, decorators.atomic) и, при необходимости, одна пара скобок с аргументами (как вызов функции). Так что @decorators[2]
использовать нельзя. Вот строка из грамматики Python:
decorator: '@' dotted_name [ '(' [arglist] ')' ] NEWLINE
👉@BookPython
BY Библиотека Python разработчика | Книги по питону
Share with your friend now:
tgoop.com/BookPython/3320