如何获取实例给出实例的方法?

19 python methods class instance

class MyClass:
    def myMethod(self):
        pass

myInstance = MyClass()

methodReference = myInstance.myMethod
Run Code Online (Sandbox Code Playgroud)

myInstance如果您现在只能访问,现在可以获得参考methodReference吗?

dus*_*san 20

试试这个:

methodReference.im_self
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Python 3:

methodReference.__self__
Run Code Online (Sandbox Code Playgroud)


Mik*_*lla 7

methodReference.im_self
Run Code Online (Sandbox Code Playgroud)

并且通过类似的标记,为班级:

methodReference.im_class
Run Code Online (Sandbox Code Playgroud)

对于这种代码发现,您应该安装iPython并使用tab,例如,在您的情况下myReference.+ TAB将给出:

In [6]: methodReference. methodReference.im_class 
methodReference.im_func   methodReference.im_self
Run Code Online (Sandbox Code Playgroud)

因此,您不必担心记住这么多东西 - 您知道该方法可能是由函数对象提供的,并且根据iPython给出的建议,通常很明显您正在寻找什么方法/属性.