Использование super
является стандартным способом сделать это в Python. Если вы хотите переопределить, просто переопределите ...
class F2(F1):
def __init__(self, sick, cure):
super(F2, self).__init__(sick)
self.cure = cure
self.sick = sick + 1
Добавление атрибута класса может быть вариантом, в зависимости от ваших потребностей. Из вашего описания я бы сказал, что это звучит лучше, потому что значение по умолчанию sick
никогда не меняется, и это, вероятно, то, что вам нужно.
Использование атрибута класса не влияет на переопределение, поскольку при назначении атрибута для экземпляра атрибут класса не затрагивается. Пример:
>>> class F:
... a = 1
...
>>> f1, f2 = F(), F()
>>> f2.a = 2
>>> f1.a
1