親から継承するクラス変数を子クラスに変更してもらいたいのですが。
私は次のようなことをしたいと思います。
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のインスタンスをインスタンス化するたびに、「world」がリストに追加されますが、これは望ましくありません。さらに次のように変更できます。
class Child(Parent):
def __init__(self):
if type(self).foobar.count("world") < 1:
type(self).foobar.extend(["world"])
ただし、動作する前にChildのインスタンスをインスタンス化する必要があるため、これはまだハックです。
もっと良い方法はありますか?