Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-什么是所有的内置装饰器?_Python_Decorator - Fatal编程技术网

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(...):