Radhakrishna Bhat wrote: > I am using getattr to get a method instance from a class. But it also > returns methods from the superclass. How to detect if an attribute is > from superclass? > You could try, if x is in instance, looking to see whether the name is defined in x.__class__.__dict__.
>>> class A: ... def method1(self): ... print "A1" ... def method2(self): ... print "A2" ... >>> class B(A): ... def method2(self): ... print"B2" ... def method3(self): ... print "B3" ... >>> a = A() >>> b = B() >>> b.method2() B2 >>> b.method1() A1 >>> b.method3() B3 >>> b.__class__.__dict__ {'__module__': '__main__', 'method2': <function method2 at 0x7ff1d6bc>, 'method3': <function method3 at 0x7ff1d3ac>, '__doc__': None} >>> a.__class__.__dict__ {'__module__': '__main__', 'method2': <function method2 at 0x7ff1d064>, '__doc__': None, 'method1': <function method1 at 0x7ff1d6f4>} >>> I'd be interested to know why this is so important. regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 See PyCon Talks from Atlanta 2010 http://pycon.blip.tv/ Holden Web LLC http://www.holdenweb.com/ UPCOMING EVENTS: http://holdenweb.eventbrite.com/ -- http://mail.python.org/mailman/listinfo/python-list