How to get instance given a method of the instance?

后端 未结 3 1786
执念已碎
执念已碎 2020-12-06 09:35
class MyClass:
    def myMethod(self):
        pass

myInstance = MyClass()

methodReference = myInstance.myMethod

Now can you get a reference to <

相关标签:
3条回答
  • 2020-12-06 10:06
    methodReference.im_self
    

    and by a similar token, for the class:

    methodReference.im_class
    

    For this kind of code discovery you should install iPython and use tab, for instance, in your case myReference.+TAB would give:

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

    Hence, you don't need to worry about remembering things so much - you know that the method is probably provided by the function object and from the suggestions that iPython gives it's usually obvious what method/attribute you're looking for.

    0 讨论(0)
  • 2020-12-06 10:09

    Try this:

    methodReference.im_self
    

    If you are using Python 3:

    methodReference.__self__
    
    0 讨论(0)
  • 2020-12-06 10:23

    You can work this out yourself - have a look at the dir output:

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

    The im_* instances refer to attributes defined for instance methods...

    The class it was defined in, the function code block, and the object it is bound to...

    0 讨论(0)
提交回复
热议问题