Lie wrote:
On Jun 9, 10:28 pm, [EMAIL PROTECTED] wrote:
Hi All.

In a complex inheritance hierarchy, it is sometimes difficult to find
where a
method is defined.  I thought it might be possible to get this info
from the
method object itself, but it looks like maybe not.  Here is the test
case I tried:

class A(object):
    def method():
        pass

class B(A):
    pass

a = A()
b = B()

print a.method
print b.method

Since B inherits method from A, I thought that printing b.method might
tell
me that the definition is in A, but no.  Here's the output:

<bound method A.method of <__main__.A object at 0xb7d55e0c>>
<bound method B.method of <__main__.B object at 0xb7d55e2c>>

This in indistinguishable from the case where B overrides method.

So, is there any way to inspect a method to see where (in what class)
it
is defined?

You might try the inspect module. It can give you lots of information about a method (even including the file name and line number where it was defined). Poke around and perhaps you can find exactly what you are looking for.

Gary Herron

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to