У Python есть декораторы в стандартной библиотеке?

Помимо @staticmethod и @classmethod ? Большинство языков имеют некоторые базовые библиотеки, которые используют большинство языковых функций.

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

  • Как читать и редактировать электронные таблицы Google с помощью Python 3.x?
  • Как заставить numpy упорядочить массив для стиля fortran?
  • Это Pythonic использовать bools как ints?
  • Панды: выбор с помощью MultiIndex
  • Установите цвет фона наведения в меню Gtk3 MenuItem
  • Django, фильтр по указанному месяцу и году в диапазоне дат
  • Как доказать, что оценка параметра «слева направо» в Python?
  • Python. Каким должен быть тип flask.request.files.stream?
  • 4 Solutions collect form web for “У Python есть декораторы в стандартной библиотеке?”

    свойство обычно используется в качестве декоратора.

    functools имеет несколько функций, обычно используемых в качестве декоратора, таких как total_ordering , update_wrapped , lru_cache и wraps .

    contextlib имеет декоратор contextmanager .

    Имейте в виду, что вы можете использовать любую функцию в качестве декоратора:

     @decorator def function(): pass 

    это то же самое, что и

     def function(): pass function = decorator(function) 

    Чтобы быть полезными, они обычно должны ожидать вызова в качестве аргумента, и им нужно вернуть вызываемый объект. ( property является исключением из второй части.)

    Классы также могут быть оформлены точно так же.

    Существует также список декораторов на Python Wiki . Некоторые из них находятся в стандартной библиотеке, некоторые – нет.

    • имущество
    • functools.total_ordering
    • functools.lru_cache
    • functools.wraps
    • contextlib.contextmanager

    NOt библиотека сама по себе, но компиляция полезных декораторов находится на http://wiki.python.org/moin/PythonDecoratorLibrary

    Декораторы Python – это просто простые функции или другие вызовы, которые в качестве одного аргумента принимают функцию или класс, который должен быть украшен. Таким образом, вы можете использовать многие обычные функции в качестве декораторов и наоборот. Возможное использование в качестве декоратора часто не задокументировано.

    Python - лучший язык программирования в мире.