class MyClass:
def myMethod(self):
pass
myInstance = MyClass()
methodReference = myInstance.myMethod
如果您现在只能访问myInstance
,现在可以获得对methodReference
的引用吗?
答案 0 :(得分:18)
试试这个:
methodReference.im_self
如果您使用的是Python 3:
methodReference.__self__
答案 1 :(得分:7)
methodReference.im_self
并以类似的方式,为班级:
methodReference.im_class
对于这种代码发现,您应该安装iPython并使用tab,例如,在您的情况下myReference。+ TAB会给出:
In [6]: methodReference. methodReference.im_class
methodReference.im_func methodReference.im_self
因此,您不必担心记住这么多东西 - 您知道该方法可能是由函数对象提供的,而且iPython给出的建议通常很明显,您正在寻找什么方法/属性。
答案 2 :(得分:0)
你可以自己解决这个问题 - 看一下dir
输出:
>>> dir(mr)
['__call__', ... '__str__', '__subclasshook__', 'im_class', 'im_func', 'im_self']
im_*
个实例引用为instance methods
...
它定义的类,功能代码块,以及它绑定的对象......