Python-什么是所有的内置装饰器?
我知道Python-什么是所有的内置装饰器?,python,decorator,Python,Decorator,我知道@staticmethod、@classmethod和@property,但只是通过零散的文档。Python中内置的所有函数装饰器是什么?文件里有吗?有没有保存最新的列表?我想没有。decorator与普通函数没有区别,您只是以一种更奇特的方式调用它们 要查找所有这些函数,请尝试搜索列表,因为正如您在decorator语法中所看到的,它只是一个语法糖,因为以下两个定义创建了相等的函数(从术语表中复制了此示例): 因此,任何返回另一个函数的内置函数都可以用作装饰器。问题是——这样使用它有意义
@staticmethod
、@classmethod
和@property
,但只是通过零散的文档。Python中内置的所有函数装饰器是什么?文件里有吗?有没有保存最新的列表?我想没有。decorator与普通函数没有区别,您只是以一种更奇特的方式调用它们
要查找所有这些函数,请尝试搜索列表,因为正如您在decorator语法中所看到的,它只是一个语法糖,因为以下两个定义创建了相等的函数(从术语表中复制了此示例):
因此,任何返回另一个函数的内置函数都可以用作装饰器。问题是——这样使用它有意义吗?:-)
模块包含一些可以用作装饰器的函数,但它们不是您要求的内置函数。它们不是内置函数,但示例装饰器非常好
作为Abgan,内置函数列表可能是最好的查看位置。尽管如此,由于decorator也可以作为类来实现,它不能保证是全面的。没有所有decorator的列表。没有所有函数的列表。没有所有课程的列表
decorator是一个方便的工具,用于跨函数、方法或类定义公共方面。有内置的装饰器。再加上还有很多很酷也没用的装饰师。同样的,也有很多很酷的和无用的类 甚至不需要修饰符来返回函数。我以前使用过
@atexit.register
。好吧,这个函数返回的函数与传递给它的函数相同。哦,是吗?我从来没有注意到。“装饰程序甚至不需要返回函数”-不过,为了有意义,他们应该这样做,因为@decor
只是f=decor(f)
的糖-否则您将丢失对正在装饰的函数的引用。@Dan,您知道@property
不返回函数,是吗?@Sasszem,每个函数都会返回一些东西。如果没有其他内容,您至少会得到None
。无论哪种方式,都有许多非函数可调用对象。虽然没有官方列表,但这个链接很有用:最著名的有:@staticmethod
,@classmethod
,@property
,@wrapps
,@timeit
,他的问题是关于内置装饰器的。必须有一个有限(可能相对较小)的内置装饰器列表。
def f(...):
...
f = staticmethod(f)
@staticmethod
def f(...):