Python标准库中是否有装饰器?

2024-04-25 17:48:45 发布

您现在位置:Python中文网/ 问答频道 /正文

除了@staticmethod@classmethod?大多数语言都有一些基本的库来利用大多数语言特性。

我发现自己制作的许多装饰器似乎都是很多人都会用到的东西,但是我还没有找到任何内置的python装饰器来完成它们。有这样的事情吗?


Tags: 语言利用装饰特性事情内置classmethodstaticmethod
3条回答

不是一个库本身,而是一个有用的decorators的汇编

property通常用作装饰器。

functools有几个通常用作装饰器的函数,例如total_orderingupdate_wrappedlru_cachewraps

contextlib具有^{}装饰器。

请记住,您可以将任何函数用作装饰器:

@decorator
def function(): pass

就跟

def function(): pass
function = decorator(function)

为了有用,它们通常需要将callable作为参数,并且需要返回一个callable对象。(property是第二部分的例外。)

类也可以用完全相同的方式进行修饰。

还有一个list of decorators on the Python Wiki。有些在标准库中,有些不在。

相关问题 更多 >