Variable inheritance
Oleg Broytmann
phd at phd.fep.ru
Tue May 22 05:00:24 EDT 2001
On Tue, 22 May 2001, Roman Suzi wrote:
> > But grey mouse DOES NOT "contains" grey color. The mouse IS really grey
> > thing, hence I used inheritance.
>
> It could be _said_ of everything:
>
> Thing IS HavingSomethingThing
>
> instead of
>
> Thing HAS Something
>
> ;-)
>
> (Note, that the later is much shorter and clearer!)
Not always. Telephone IS CoomunicatingDevice, but why do want it to "HAS
communication abilities".
And what is more important, when you declare
class Telephone(CommunicatingDevice): pass
you can use methods from tha class CommunicatingDevice. When you declare
class Telephone:
def __init__(self, device):
self.comm_device = device
you cannot. You must redeclare them yourself and delegate them:
class Telephone:
def __init__(self, device):
self.comm_device = device
def method1(self):
self.comm_device.method1()
def method2(self):
self.comm_device.methodo2()
This is certainly neither shorter nor cleaner :-/
Oleg.
----
Oleg Broytmann http://phd.pp.ru/ phd at phd.pp.ru
Programmers don't die, they just GOSUB without RETURN.
More information about the Python-list
mailing list