我知道@staticmethod,@classmethod和@property,但只能通過分散的文檔。是否有內置於Python的函數裝飾器的完整列表?Python - 是否有一個裝飾器列表的地方?
44
A
回答
28
我不這麼認爲。裝飾者與普通功能沒有什麼不同,你只能用更加奇特的方式給他們打電話。
爲了找到所有這些嘗試搜索Built-in functions名單,因爲你可以在Python glossary看到裝飾語法只是一個語法糖,如下面的兩個定義創造平等的功能(拷貝從詞彙本示例):
def f(...):
...
f = staticmethod(f)
@staticmethod
def f(...):
所以任何返回另一個函數的內置函數都可以用作裝飾器。問題是 - 以這種方式使用它有意義嗎? :-)
functools模塊包含一些可用作裝飾器的函數,但它們不是您要求的內置函數。
12
它們不是內置的,但是示例裝飾器的this library非常好。
作爲Abgan says,內置的函數列表可能是最好看的地方,但作爲裝飾器也可以作爲類實現,但不能保證是全面的。
-2
有沒有這樣的事情作爲所有裝飾的列表。沒有所有功能的列表。沒有所有課程的列表。
裝飾器是定義跨功能,方法或類的共同方面的便捷工具。有內置的裝飾器。此外還有任何數量的酷和無用的裝飾。以同樣的方式,有許多很酷且無用的課程。
1
修飾器甚至不需要返回一個函數。我之前使用過@atexit.register
。
+0
那麼,那個人會返回傳遞給它的相同功能。 – 2009-01-27 03:43:22
相關問題
- 1. 檢查一個Python函數是否用特定的修飾器裝飾
- 2. 使用draper裝飾器時的裝飾方法列表
- 3. 是否有可能擁有帶參數的Python類裝飾器?
- 4. Python:裝飾對象列表
- 5. 檢查一個函數是否有裝飾器
- 6. 是否有可能在Python(2.4)中製作這種裝飾器?
- 7. Lua是否支持裝飾器?
- 8. Python裝飾器和裝飾器模式有什麼區別?
- 9. Python實例方法上的裝飾器
- 10. 在Python中裝飾裝飾器
- 11. Python memoization裝飾器
- 12. 編寫一個裝飾器,以便爲類的所有方法應用另一個裝飾器參數
- 13. 是否可以在Python中裝飾類?
- 14. 這是一個函數裝飾器?
- 15. python裝飾器是如何定義的?
- 16. 生成器裝飾器是否存在?
- 17. 帶有選項的Python裝飾器
- 18. 帶有參數的Python裝飾器
- 19. 從裝飾器訪問擁有裝飾方法的類
- 20. python中的裝飾器
- 21. 好的Python裝飾器
- 22. Python:裝飾器可以確定一個函數是否正在類中定義?
- 23. Babel Decorators:是否可以創建一個「@export」裝飾器?
- 24. python是否有內置的方式來返回一個列表生成器,而不是從random.sample的列表
- 25. python:是可能的方法參數的裝飾器?
- 26. 裝飾裝飾器
- 27. 裝飾方法在Python
- 28. 在Python中裝飾方法
- 29. Python的 - 裝飾
- 30. python:通過將裝飾器定義爲類來裝飾一個類
沒有官方列表,但是這個鏈接很有用:https://github.com/lord63/awesome-python-decorator – Casebash 2018-02-23 04:34:45