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

Reply via email to