[Tutor] Basic class inheritance

Negroup - negroup at gmail.com
Thu Jul 28 16:48:47 CEST 2005


I have this class:
>>> class A:
...     def __init__(self, blank=False, editable=True, name='foo'):
...             self.blank = blank
...             self.editable = editable
...             self.name = name
...
>>> a = A()
>>> a.blank, a.editable, a.name
(False, True, 'foo')

All as expected.

Now I want that another class, call it B, inherits all
behaviours/attributes except for the attribute blank, that now I want
to be False.

This should be possible overriding __init__ method no? 
>>> class B(A):
...     def __init__(self, blank=True, editable=True, name='foo'):
...             self.blank = blank
...             self.editable = editable
...             self.name = name
...
>>> b = B()
>>> b.blank, b.editable, b.name
(True, True, 'foo')	

However, is it possible to achieve this without rewrite the whole
__init__ method, but just overriding parts of it?

For __init__ very long it would be an unuseful duplication of code..,
so I'm sure there is a trivial solution! Can you help to figure it
out?

Thanks


More information about the Tutor mailing list