我知道@staticmethod
,@classmethod
和@property
,而只能通过散落的文档.Python内置的所有函数装饰器是什么?是在文档中吗?是否在某处保留了最新列表?
我不这么认为.装饰器与普通功能没有区别,您只能以更高级的方式调用它们.
为了找到所有这些,请尝试搜索内置函数列表,因为正如您在Python词汇表中看到的那样,装饰器语法只是一个语法糖,因为以下两个定义创建了相同的函数(从术语表中复制了此示例):
def f(...): ... f = staticmethod(f) @staticmethod def f(...):
因此,任何返回另一个函数的内置函数都可以用作装饰器.问题是 - 以这种方式使用它是否有意义?:-)
functools模块包含一些可用作装饰器的函数,但它们不是您要求的内置函数.
它们不是内置的,但是这个示例装饰器库非常好.
正如Abgan 所说,内置函数列表可能是最好看的地方.虽然,因为装饰器也可以作为类实现,但不能保证是全面的.