23
class MyClass:
    def myMethod(self):
        pass

myInstance = MyClass()

methodReference = myInstance.myMethod

myInstanceにしかアクセスできない場合、参照を取得できますmethodReferenceか?

4

3 に答える 3

31

これを試して:

methodReference.im_self

Python 3 を使用している場合:

methodReference.__self__
于 2013-01-29T17:43:06.953 に答える
8

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 が提供する提案から、探しているメソッド/属性は通常明らかです。

于 2013-01-29T17:45:14.120 に答える
1

これは自分で解決できます -dir出力を見てください:

>>> dir(mr)
['__call__', ... '__str__', '__subclasshook__', 'im_class', 'im_func', 'im_self']

インスタンスは、im_*定義された属性を参照しますinstance methods...

定義されたクラス、関数コード ブロック、バインド先のオブジェクト...

于 2013-01-29T17:45:01.863 に答える