I want to distinguish between methods and functions in Python 3. Furthermore, I want to get the corresponding class if it is a method. My current solution is like this:
You just need to get the type of the method, but since methods are descriptors, you have to :
1 - Get the class out of the instance.
2 - Look up the method reference in __dict__
instead of making an attribute lookup.
E.G :
>>> f = Foo()
>>> type(f.__class__.__dict__['bari'])
>>> type(f.__class__.__dict__['barc'])
>>> type(f.__class__.__dict__['bars'])