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. 在Protobuf-net中,是否可以序列化非裝飾類?
- 3. 是否可以在類中創建裝飾器?
- 4. 是否可以在Typescript中修飾裝飾器?
- 5. Python:裝飾器可以確定一個函數是否正在類中定義?
- 6. Python類裝飾
- 7. 是否有可能擁有帶參數的Python類裝飾器?
- 8. Python - 函數是否可以看到它自己的裝飾器
- 9. 是否有可能在Python(2.4)中製作這種裝飾器?
- 10. Python中的子類可以繼承父類的裝飾
- 11. 是否可以使用裝飾器在Python中進行「擴展」時間監控?
- 12. 是否可以修飾其實例將被酸洗的Python類?
- 13. Python的裝飾類
- 14. as_view()(用於基於類的視圖)是否可以在裝飾器中實現?
- 15. 在Python中裝飾裝飾器
- 16. 是否有像c#的python裝飾器?
- 17. Java中的類可以確定它是否是修飾符?
- 18. 是否可以驗證Draper裝飾器中的上下文?
- 19. 在Python中擴展裝飾類
- 20. 在Python裝飾
- 21. 「@」 裝飾(在Python)
- 22. 裝飾在Python
- 23. Python的裝飾客體不是可用
- 24. WPF裝飾類是否有用?
- 25. 是否可以將TypeScript裝飾器應用於類中的所有字段?
- 26. 可以裝飾一個Service類嗎?
- 27. Python類方法裝飾
- 28. Python裝飾器和類
- 29. Python類裝飾器參數
- 30. 在Python中裝飾方法