Python – какие встроенные декораторы?[закрыто]

StackOverflow https://stackoverflow.com/questions/480178

  •  20-08-2019
  •  | 
  •  

Вопрос

я знаю @staticmethod, @classmethod, и @property, но только через разрозненную документацию.Какие декораторы функций встроены в Python?Это есть в документах?Есть ли где-нибудь актуальный список?

Это было полезно?

Решение

Я так не думаю.Декораторы не отличаются от обычных функций, их можно только вызывать более интересным способом.

Чтобы найти их все, попробуйте поискать Встроенные функции список, потому что, как вы можете видеть в Глоссарий Python синтаксис декоратора — это всего лишь синтаксический сахар, поскольку следующие два определения создают равные функции (этот пример скопирован из глоссария):

def f(...):
    ...
f = staticmethod(f)

@staticmethod
def f(...):

Таким образом, любая встроенная функция, возвращающая другую функцию, может использоваться в качестве декоратора.Вопрос в том, есть ли смысл использовать его таким образом?:-)

функциональные инструменты Модуль содержит некоторые функции, которые можно использовать в качестве декораторов, но они не являются встроенными, о которых вы просили.

Другие советы

Они не встроены, но эта библиотека Примеры декораторов очень хороши.

Как Абган говорит, список встроенных функций, вероятно, является лучшим местом для поиска.Хотя, поскольку декораторы также могут быть реализованы как классы, их полнота не гарантируется.

Декораторам даже не требуется возвращать функцию.я использовал @atexit.register до.

Не существует такого понятия, как список всех декораторов.Нет списка всех функций.Нет списка всех классов.

Декораторы — это удобный инструмент для определения общего аспекта функций, методов или классов.Есть встроенные декораторы.Плюс есть множество крутых и бесполезных декораторов.Точно так же есть множество крутых и бесполезных занятий.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top