[英]Determine if callable can be called from class or instance
如何確定某個方法或函數或任何可調用對象可以原樣調用或綁定到實例?
檢查並不涵蓋所有情況。 即這綁定到實例或類:
PY>inspect.ismethod(object.__subclasshook__)
False
PY>inspect.isfunction(object.__subclasshook__)
False
除了查閱文檔外,沒有其他方法可以告訴您。 沒有任何編程方式可以推斷出作者的功能意圖 。 只要傳遞必需的參數,就可以始終從類“直接”調用函數,請考慮:
In [1]: class Foo:
...: def speak(self):
...: print('hello')
...:
In [2]: Foo().speak()
hello
In [3]: Foo.speak(None)
hello
但顯然,作者的意思是speak
要成為實例方法。
我想您可以排除零參數的函數可從實例調用的情況,但是對於類中的函數,這將是高度不規則的情況(除非它實際上是staticmethod
對象)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.