gpt4 book ai didi

python - 可以装饰类吗?

转载 作者:行者123 更新时间:2023-11-30 23:05:24 25 4
gpt4 key购买 nike

我知道函数装饰器和类方法装饰器。

但是,是否也可以装饰类?

最佳答案

是的,当然。

装饰器只是一个带有参数的函数。该参数可以是一个类。

#!/usr/bin/env python3

def decorate(cls):
print(cls)
return cls

@decorate
class Foo: pass

这段代码在 python2 和 python3 中都可以工作:

$ python example.py
__main__.Foo
$ python3 example.py
<class '__main__.Foo'>

对于函数装饰器,类装饰器可以返回任意对象。您可能想返回一些行为与原始类相同的东西。您还可以即时修改类并返回类本身。

如果您打算为装饰器设置参数,我建议您 this approach ,恕我直言,这是最自然的(有偏见的建议:D)。

关于python - 可以装饰类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33144885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com