class MyClass:
def myMethod(self):
pass
myInstance = MyClass()
methodReference = myInstance.myMethod
myInstance
にしかアクセスできない場合、参照を取得できますmethodReference
か?
これを試して:
methodReference.im_self
Python 3 を使用している場合:
methodReference.__self__
Python 3 を使用している場合:
methodReference.__self__
さもないと:
methodReference.im_self
同様に、クラスについては次のようになります。
methodReference.im_class
この種のコード検出では、iPython をインストールしてタブを使用する必要があります。たとえば、あなたの場合、 myReference.+TAB は次のようになります。
In [6]: methodReference. methodReference.im_class
methodReference.im_func methodReference.im_self
したがって、物事を思い出すことについてあまり心配する必要はありません。メソッドはおそらく関数オブジェクトによって提供され、iPython が提供する提案から、探しているメソッド/属性は通常明らかです。
これは自分で解決できます -dir
出力を見てください:
>>> dir(mr)
['__call__', ... '__str__', '__subclasshook__', 'im_class', 'im_func', 'im_self']
インスタンスは、im_*
定義された属性を参照しますinstance methods
...
定義されたクラス、関数コード ブロック、バインド先のオブジェクト...