在Python中使用plt.cm.Spectral時,我有些困惑。 經過檢查plt.cm.Spectral的類型後,我將模塊plt.cm中的var Spectral視爲類LinearSegmentedColormap的一個實例。 但是,我也看到代碼colors = plt.cm.Spectral(np.linspace(0,1,10))可以執行沒有錯誤。這裏有一點讓我困惑,爲什麼可以調用一個類的實例,即在其後面加上帶有參數的括號? 謝謝!如果他們實施__call__
爲什麼可以調用一個類的實例?
2
A
回答
3
Python對象調用的:
object.__call__(self[, args...])
當實例「稱」作爲一個函數調用;如果定義了此方法,則
x(arg1, arg2, ...)
是x.__call__(arg1, arg2, ...)
的簡寫。從Colormap
LinearSegmentedColormap
繼承實現__call__
:
https://github.com/matplotlib/matplotlib/blob/master/lib/matplotlib/colors.py#L433
這使得LinearSegmentedColormap
調用一個實例。
相關問題
- 1. 爲什麼您可以在同一個委託實例上多次調用BeginInvoke?
- 2. 爲什麼我可以實例化這個抽象類?
- 3. 爲什麼可以創建一個COM接口的新實例?
- 4. 什麼可以從元類實例化
- 5. 爲什麼LocalDateTime可以返回實例?
- 6. 爲什麼你可以在其定義中實例化一個類?
- 7. 爲什麼在Java中的類實例中返回一個類實例?
- 8. 爲什麼期望的實例「用戶」是一個類?
- 9. 爲什麼實例化一個類輸出類的內容?
- 10. 一個類的伊娃可以作爲它的超類的一個實例嗎?
- 11. 爲什麼調用實例化的PHP類方法?
- 12. 我可以指定一個類實例可以轉換爲某種類型嗎?
- 13. 爲什麼這個python類實例可散列?
- 14. 我可以在JavaScript中動態地將一個類的實例轉換爲另一個類的實例嗎?
- 15. 靜態類不會先被調用,而會被實例類調用。爲什麼?
- 16. 爲什麼我們可以在一個靜態方法內創建一個類的實例?
- 17. 在PHP 5.2爲什麼實例化一個類並在同一行上調用一個方法是無效的?
- 18. 爲什麼我不能讓String成爲一個類型類的實例?
- 19. 爲什麼同一個類的兩個實例的行爲不同?
- 20. 一個類的實例可以用JavaScript代替它自己嗎?
- 21. 可以用java相同的方式實例化一個scala類
- 22. 爲什麼在Python中`object`類的實例是不可變的?
- 23. Java的超類實例調用子類的方法,不知道爲什麼
- 24. 調用實例方法從另一個類訪問IBOutlet實例
- 25. 爲什麼Python不調用實例方法__init __()創建實例,而是調用類提供的__init __()來代替?
- 26. 爲什麼Unity啓動這個實例不是一個單例?
- 27. 是否可以從內部類實例訪問一個外部類實例?
- 28. 一個類可以是一個實例是否正確?
- 29. 爲什麼NHibernate刪除不可變的類實例?
- 30. 如何調用一個類的實例,實例方法從不同的類
謝謝!非常明確的解釋。 – Leo