Bruno Desthuilliers said unto the world upon 25/04/06 06:52 PM: > Duncan Booth a écrit : > >>bruno at modulix wrote: >> >> >> >>>class Base(object): >>> def __init__(self, arg1): >>> self.attr1 = arg1 >>> self.dothis() >>> >>> def dothis(self): >>> return self.attr1 >>> >>>class Derived(Base): >>> def __init__(self, arg1, arg2=0): >>> self.attr2 = arg2 >>> Base.__init__(self, arg1) >>> >>> def dothis(self): >>> return self.attr1 + self.attr2 >>> >>>(snip) >>> >>> >>> >>>>Perhaps if the base __init__ calls an overridden >>>>method, but at that point it sounds to me like something wants >>>>refactoring. >>> >>>Why so ? This is a well-known pattern (template method). I don't see >>>what's wrong with it. >> >> >>Apart from the fact that you can delete the method 'dothis' from both >>classes with no effect on the code? > > > Mmmm... Oh, I see. Agreed, this is not a very good example.
<snip> This hobbyist isn't seeing Duncan's point. Wouldn't deleting the dothis method from both classes lead to an AttributeError as Base.__init__ calls self.dothis()? Is the point that one could refactor out the self.dothis() from the __init__? Or something else altogether? (I assume it can't be that dothis isn't doing real work as it is in the context of a toy example.) Enlightenment gratefully received. Best to all, Brian vdB -- http://mail.python.org/mailman/listinfo/python-list