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
...定义的属性
它被定义的类,功能代码块,以及它所绑定的对象......