スーパークラスから継承するPythonのクラスがいくつかあります。スーパークラスには、いくつかの値を含む辞書があります。一部の派生クラスは、属性アクセスを介してこのディクショナリを直接使用します。ただし、派生クラスの一部は独自のディクショナリを定義し、スーパークラスのディクショナリを上書きします。
これにより、クラスがスーパークラスからディクショナリ属性を継承するか、独自の属性に置き換えることができる、オールオアナッシングの状況が作成されます。
下位互換性があり、好ましいpythonistic-で、クラスに親の辞書を継承させ、独自のエントリで拡張する方法はありますか?すべてがメソッドでアクセスされた場合、継承されたクラスで次のように何かを実行します。
class SuperClass(object):
my_dict = {'key': 'value'}
def get_dictioary(self):
return my_dict
class Inherited(SuperClass):
my_dict = {'some key': 'some value'}
def get_dictionary(self):
dictionary = super(SuperClass, self).get_dictioary().copy()
dictionary.update(my_dict)
return dictionary