Union of class variables
Ben Finney
ben+python at benfinney.id.au
Tue Feb 16 04:01:08 EST 2010
Joan Miller <peloko45 at gmail.com> writes:
> Is possible to get a third class with the class variables of another
> two classes?
Multiple inheritance is allowed in Python:
class Baz(Foo, Bar):
pass
However, it leads to complications that you likely don't want, e.g.
<URL:http://www.artima.com/weblogs/viewpost.jsp?thread=246341>.
Is it *really* the case that the new class is best expressed by an IS-A
relationship to *both* the others? (“Every Baz IS-A Foo; every Baz IS-A
Bar”)
You should consider composition, instead. Decide which other class
represents the more general case of the new class, and give it
additional capabilities through a HAS-A relationship. (“Every Baz IS-A
Foo; every Baz HAS-A Bar”)
class Baz(Foo):
def __init__(self):
self.bar = Bar()
That way, you keep the clarity of single inheritance and additional
capabilities are accessed through an attribute.
--
\ “Always code as if the guy who ends up maintaining your code |
`\ will be a violent psychopath who knows where you live.” —John |
_o__) F. Woods |
Ben Finney
More information about the Python-list
mailing list