On Jul 16, 7:18 am, Erik Jones <[EMAIL PROTECTED]> wrote: > On Jul 15, 2007, at 11:23 PM, Michele Simionato wrote: > > > On Jul 16, 5:51 am, Erik Jones <[EMAIL PROTECTED]> wrote: > >> Say you're given a call event frame for a method call. How can you > >> tell if the code being executed came from a super class of the object > >> or class the method was called on? > > >> Erik Jones > > > You look if the method was defined in self.__class__.__dict__. > > > Michele Simionato > > That doesn't seem to cover calling super class __init__ methods. >
I am probably missing something. In the following code the method check_init checks if the current instance possess an __init__ or if it just inherits one from the ancestors. Is this what you want? class B(object): def __init__(self): 'something' def check_init(self): if '__init__' in self.__class__.__dict__: print 'possesses __init__' else: print 'inherits __init__' class C(B): 'something else' def __init__(self): print 'calling C.__init__' class D(B): pass c = C() d = D() c.check_init() #possesses __init__ d.check_init() #inherits __init__ -- http://mail.python.org/mailman/listinfo/python-list