Thanks a lot for the quick answer. Still some doubts below. On Sat, Jun 26, 2010 at 11:07:17PM +1000, Steven D'Aprano wrote: > The old MRO (Method Resolution Order) is broken for classes using > multiple inheritance with a diamond shape inheritance diagram. Not a > little bit broken, but horribly, horribly broken. > > If you have something like this class hierarchy: [...] > (only with actual methods, of course) then inheritance with old-style > classes cannot work correctly in some circumstances. Fortunately this
Can you give any simple example where this simple mro will work incorrectly? i read, http://www.python.org/download/releases/2.3/mro/ butdid not get where mro will fail (ofcourse if python implemented it corrrectly). > is rare for old-style classes. But for new-style classes, *all* multiple > inheritance is diamond-shaped, because all classes inherit back to > object at the top of the diagram: still not getting , how do the new style classes solve the problem (if there was any). > Python doesn't have a special "abstract class" type, but it is easy to > make one with just two lines of boilerplate: [...] Sorry, I am not getting it. I get, NameError: global name 'Abstract' is not defined Was that a working code? (cos' I do not know what you mean by boilerplate) > class DomainError(ValueError): > """Used for mathematics domain errors.""" > pass Can we say that our own exception classes have only maybe a doc-string and pass, nothing more? Thanks a lot again. With warm regards, -Payal -- _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor