我知道@staticmethod,@classmethod和@property,而只能通过零星的文档。Python内置的所有函数装饰器是什么?是在文档中吗?是否在某处维护了最新列表?
Answers:
我不这么认为。装饰器与普通功能没有什么不同,您只能以更奇特的方式调用它们。
要找到所有这些,请尝试搜索“内置函数”列表,因为如您在Python词汇表中所见,装饰器语法只是一种语法糖,因为以下两个定义创建了相等的函数(此示例从词汇表中复制):
def f(...):
...
f = staticmethod(f)
@staticmethod
def f(...):
因此,任何返回另一个函数的内置函数都可以用作装饰器。问题是-以这种方式使用是否有意义?:-)
functools模块包含一些可用作装饰器的函数,但它们并不是您所要求的内置函数。