如何获得实例给出的实例的方法?(How to get instance given a method

2019-07-18 22:42发布

class MyClass:
    def myMethod(self):
        pass

myInstance = MyClass()

methodReference = myInstance.myMethod

现在,你可以得到一个参考myInstance如果你现在只能访问methodReference

Answer 1:

methodReference.im_self

并通过类似的道理,为类:

methodReference.im_class

对于这种代码发现应该安装IPython的和使用标签,例如,你的情况myReference + TAB将使:

In [6]: methodReference. methodReference.im_class 
methodReference.im_func   methodReference.im_self

因此,你不需要担心的事情记住这么多 - 你知道的方法可能是通过函数对象,并从IPython的给它通常是显而易见的什么方法/属性你正在寻找的建议提供。



Answer 2:

试试这个:

methodReference.im_self

如果您在使用Python 3:

methodReference.__self__


Answer 3:

你可以工作了这一点你自己-看看在dir输出:

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

im_*实例参阅定义属性instance methods ...

它是在定义的类,功能码块,和它被绑定到对象...



文章来源: How to get instance given a method of the instance?