Chaz Ginger wrote: > Chaz Ginger wrote: > > glenn wrote: > >> hi - Im quite new to python, wondering if anyone can help me understand > >> something about inheritance here. In this trivial example, how could I > >> modify the voice method of 'dog' to call the base class 'creatures' > >> voice method from with in it? > >> > >> class creature: > >> def __init__(self): > >> self.noise="" > >> def voice(self): > >> return "voice:" + self.noise > >> > >> class dog(creature): > >> def __init__(self): > >> self.noise="bark" > >> > >> def voice(self): > >> print "brace your self:" > > I did forget to mention that in 'dog"s' __init__ you had better call > creature's __init__. You might make it look like this: > > def __init__(self): > self.noise = 'bark' > creature.__init__(self) >
There's a problem with Chaz's __init__() method. Notice that the creature class's __init__ sets self.noise to the empty string. In this case, the superclass's __init__() method should be called first: class dog(creature): def __init__(self): creature.__init__(self) self.noise = "bark" def voice(self): print "brace your self:" creature.voice(self) --Jason -- http://mail.python.org/mailman/listinfo/python-list