Python – 有没有一个装饰器的列表?
我知道@staticmethod,@classmethod和@property,但只能通过分散的文档。 是否有一个内置于Python的函数装饰器的完整列表?
我不这么认为。 装饰师没有区别于普通的function,你只能以更有趣的方式给他们打电话。
为了find所有这些函数 ,请尝试search内置函数列表,因为正如您在Python词汇表中看到的那样,装饰器语法只是一个语法糖,因为以下两个定义会创build相同的函数(从词汇表复制此示例):
def f(...): ... f = staticmethod(f) @staticmethod def f(...):
所以任何返回另一个函数的内置函数都可以用作装饰器。 问题是 – 这样使用它有意义吗? 🙂
functools模块包含一些可以用作装饰器的函数,但是它们不是你所要求的内置函数。
它们不是内置的,但是这个例子装饰器的库很好。
正如Abgan 所说 ,内置的函数列表可能是最好的select,尽pipe装饰器也可以作为类来实现,但不能保证是全面的。
装饰者甚至不需要返回一个函数。 我以前使用@atexit.register
。
没有所有装饰者的列表。 没有所有function的列表。 没有所有类的列表。
装饰器是定义跨function,方法或类的共同方面的便利工具。 有内置的装饰器。 此外,还有任何数量的酷和无用的装饰。 以同样的方式,有许多酷和无用的类。