0
A
回答
2
是的,当然。
装饰器只是一个参数的函数。该参数可以是一个类。
#!/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)。
0
是,您可以:
def bar(cls):
print("decorating {}".format(cls))
@bar
class Foo(object):
pass
会打印:
decorating <class '__main__.Foo'>
0
在Python 2.6或更新版本,是的。旧版本只支持函数/方法装饰器。
相关问题
- 1. 是否可以在类中创建装饰器?
- 2. 是否可以在Typescript中修饰装饰器?
- 3. Python:装饰器可以确定一个函数是否正在类中定义?
- 4. Python类装饰
- 5. 是否有可能拥有带参数的Python类装饰器?
- 6. 是否有可能在Python(2.4)中制作这种装饰器?
- 7. 是否可以使用装饰器在Python中进行“扩展”时间监控?
- 8. Python的装饰类
- 9. 在Python中装饰装饰器
- 10. 在Python中扩展装饰类
- 11. Java中的类可以确定它是否是修饰符?
- 12. 在Python装饰
- 13. “@” 装饰(在Python)
- 14. 装饰在Python
- 15. WPF装饰类是否有用?
- 16. 是否可以将TypeScript装饰器应用于类中的所有字段?
- 17. Python类装饰器参数
- 18. 在Python中装饰方法
- 19. 静态方法和类方法装饰器可以在纯Python中实现吗?
- 20. 是否可以将css子类封装在一个类中?
- 21. Babel Decorators:是否可以创建一个“@export”装饰器?
- 22. 是否可以创建自定义CodeLens装饰?
- 23. Python的装饰:如何在子类
- 24. Python 2.5中的类装饰器?
- 25. 是否有可能在Sitemesh中多次装饰?
- 26. 是否可以使用Sitemesh直接在JSP中定义装饰器?
- 27. 装饰类装饰类方法
- 28. 是否可以在IIS7中安装node.js?
- 29. Python:如何从类装饰器中访问装饰类的实例?
- 30. Python的 - 装饰