Christopher J. Bottaro wrote: > Christopher J. Bottaro wrote: > > > Bengt Richter wrote: > > > >> >>> type(obj) > >> <class '__main__.A'> > >> >>> type(obj).mro() > >> [<class '__main__.A'>, <class '__main__.B1'>, <class '__main__.B2'>, > >> [<class '__main__.C'>, <type 'object'>] > >> >>> tuple(x.__name__ for x in type(obj).mro()) > >> ('A', 'B1', 'B2', 'C', 'object') > > > > Wow awesome, thats exactly what I was looking for. > > Wait a sec...why doesn't the following code work then? > > class FWException(Exception): pass > class FWA(FWException): pass > class FWB(FWA): pass > class FWC(FWB): pass > e = FWC() > print [ cl.__name__ for cl in type(e).mro() ] > > Thanks again. > --C
Is it because you need to inherit from "object"? class FWException(Exception, object): pass # note "object" class FWA(FWException): pass class FWB(FWA): pass class FWC(FWB): pass e = FWC() print [ cl.__name__ for cl in type(e).mro()] #prints ['FWC', 'FWB', 'FWA', 'FWException', 'Exception', 'object'] -- http://mail.python.org/mailman/listinfo/python-list