我知道@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. 是否有像c#的python裝飾器?
- 2. 是否有一個建立memoize磁盤裝飾器的Python?
- 3. 檢查一個Python函數是否用特定的修飾器裝飾
- 4. 是否有可能擁有帶參數的Python類裝飾器?
- 5. 使用draper裝飾器時的裝飾方法列表
- 6. Python:裝飾對象列表
- 7. 檢查一個函數是否有裝飾器
- 8. Python裝飾器
- 9. Python是否有支持memoize裝飾器的關鍵字參數的pythonic方法?
- 10. 多個python裝飾器
- 11. 是否有可能在Python(2.4)中製作這種裝飾器?
- 12. 試圖實現一個Python裝飾器,被困在幾個地方
- 13. Lua是否支持裝飾器?
- 14. Python - 多個裝飾器到一個方法出現故障
- 15. ECMAScript 2016裝飾器是否使TypeScript裝飾器變得多餘?
- 16. Python裝飾器和裝飾器模式有什麼區別?
- 17. python中的子類方法裝飾器
- 18. Python實例方法上的裝飾器
- 19. 在Python中裝飾裝飾器
- 20. python調用序列中的裝飾器
- 21. Python memoization裝飾器
- 22. 使用python裝飾器來裝飾功能的一部分
- 23. 是否可以在Python中裝飾類?
- 24. 編寫一個裝飾器,以便爲類的所有方法應用另一個裝飾器參數
- 25. 生成器裝飾器是否存在?
- 26. python裝飾器是如何定義的?
- 27. 這是一個函數裝飾器?
- 28. 的Python:從另一個類調用一個裝飾方法
- 29. 裝飾已經用@classmethod裝飾的Python方法,它調用另一個@classmethod
- 30. 帶有參數的Python裝飾器
沒有官方列表,但是這個鏈接很有用:https://github.com/lord63/awesome-python-decorator – Casebash 2018-02-23 04:34:45