Я хотел бы, чтобы дочерний класс модифицировал переменную класса, которую он наследует от своего родителя.
Я хотел бы сделать что-то вроде:
class Parent(object):
foobar = ["hello"]
class Child(Parent):
# This does not work
foobar = foobar.extend(["world"])
и в идеале:
Child.foobar = ["hello", "world"]
Я мог бы сделать:
class Child(Parent):
def __init__(self):
type(self).foobar.extend(["world"])
но затем каждый раз, когда я создаю экземпляр Child, в список добавляется "мир", что нежелательно. Я мог бы изменить его дальше:
class Child(Parent):
def __init__(self):
if type(self).foobar.count("world") < 1:
type(self).foobar.extend(["world"])
но это все равно хак, потому что я должен создать экземпляр Child до того, как он сработает.
Есть ли лучший способ?