給定一個方法的引用,有沒有辦法來檢查方法是否綁定到一個對象?你還可以訪問它綁定的實例嗎?如何檢查python方法是否綁定?
25
A
回答
33
def isbound(method):
return method.im_self is not None
def instance(bounded_method):
return bounded_method.im_self
當 通過從類檢索用戶定義 功能對象創建一個用戶定義的方法對象,其
im_self
屬性是None
而且 方法對象被認爲是未綁定的。 當一個通過經由其實例之一中檢索從 類 用戶定義功能對象創建,其im_self
屬性是實例,並且 方法目標被說成是約束。 在任一情況下,新方法的im_class
屬性是從 的類檢索發生,和 其im_func
屬性是原始 功能對象。
在Python 2.6 and 3.0:
實例方法對象具有對象和功能 包括該方法新 屬性;
im_self
的新同義詞 是__self__
和im_func
也可作爲__func__
獲得。 Python 2.6中仍然支持舊的 名稱,但在3.0中不再支持。
3
im_self attribute(僅Python的2)
7
在Python 3的__self__
屬性是對綁定方法僅集。它不是設置爲None
上的普通函數(或未綁定的方法,它們只是python 3中的普通函數)。
使用這樣的事情:
def is_bound(m):
return hasattr(m, '__self__')
相關問題
- 1. Python AppIndicator綁定 - >如何檢查菜單是否打開?
- 2. Python:如何檢查對象的屬性是否是方法?
- 3. 如何檢查是否定義了特定的jquery-easing方法?
- 4. 如何檢查Windev中的Compile()方法是否檢查代碼?
- 5. DataTemplate檢查綁定是否存在
- 6. 檢查一個符號是否綁定
- 7. 檢查綁定列是否存在
- 8. 檢查綁定屬性是否存在
- 9. 在Ruby中,如何檢查方法「foo =()」是否已定義?
- 10. 如何檢查一個java類是否有特定的方法?
- 11. 如何檢查是否定義了jQuery緩動方法
- 12. 如何檢查特定類型的方法是否存在?
- 13. 如何檢查私有方法是否在ruby中定義
- 14. 如何檢查類是否有方法添加的方法?
- 15. 如何檢查是否在Python
- 16. Python如何檢查是否返回
- 17. 如何檢查變量是否在python
- 18. 檢查矩陣是否正方形? (Python)
- 19. 如何檢查淘汰賽是否已完成數據綁定
- 20. 如何檢查綁定事件是否被調用?
- 21. 骨幹 - 無論如何檢查事件是否被綁定過?
- 22. RabbitMQ C#API:如何檢查綁定是否存在?
- 23. 如何檢查本地綁定函數是否適用於Modernizr
- 24. 如何檢查是否給出了輸出綁定?
- 25. Common Lisp:如何檢查一個插槽是否被綁定? (CLOS)
- 26. 如何檢查解決方案中是否使用了方法?
- 27. 有沒有辦法檢查RenderScrpt是否正確綁定了rs_allocation?
- 28. 如何檢查一個方法綁定到什麼對象?
- 29. 如何在Python中查找綁定方法的實例?
- 30. 檢查是否有任何與Tkinter預定的方法AFTER
鏈接斷開。 – jjmontes 2017-06-29 21:27:45