Lassen Sie uns sagen, dass ich die folgende KlasseEine saubere Art und Weise eine Klasse Attribut in Subklassen der Erweiterung
class Parent(object):
Options = {
'option1': 'value1',
'option2': 'value2'
}
Und eine Unterklasse namens Child
class Child(Parent):
Options = Parent.Options.copy()
Options.update({
'option2': 'value2',
'option3': 'value3'
})
Ich möchte in der Lage, außer Kraft zu setzen oder fügen Sie Optionen in die Kindklasse. Die Lösung, die ich verwende, funktioniert. Aber ich bin mir sicher, dass es einen besseren Weg gibt.
EDIT
Ich will nicht Optionen hinzufügen als Klassenattribute, weil ich andere Klasse Attribute, die keine Optionen sind, und ich ziehe alle Optionen an einem Ort zu halten. Dies ist nur ein einfaches Beispiel, der eigentliche Code ist komplizierter.
Warum die Kopie/Update-Logik in einem Verfahren der Elternklasse nicht versenden? Wenn Sie es in "__init__" schreiben und immer 'super() .__ init __()' am Ende der Unterklasse '__init__' nennen, wie Sie sollten, sollte es funktionieren. – asmeurer