Es gibt ja zumindest in Java die Situation, dass eine Oberklasse ein Attribut hat, dessen Wert aber erst in den Unterklassen individuell festgelegt wird und das Attribut daher in der Oberklasse gar nicht initialisiert wird.
Nun muss man ja in Python keine Attribute deklarieren. Kann man das trotzdem irgendwie analog machen oder ist das einfach sinnlos?
Einen Vorteil sähe ich darin, dass
1. die objektorientierte Struktur klarer wird, weil man auf einen Blick sieht, dass es ein Attribut der Oberklasse ist und
2. man das Attribut in der Oberklasse beim 1. Auftreten kurz mit einem Kommentar beschreiben könnte.
Attribute ohne Wert in Oberklasse vereinbaren?
Du kannst problemlos in der Oberklasse ein Attribut zB auf None setzen, und das dann wiederum im abgeleiteten Konstruktor irgendwie anders belegen. Allerdings faende ich das etwas komisch. Denn es muss ja in der Oberklasse Code geben, der sich irgendwie auf dieses Attribut bezieht, sonst braucht man es da auch nicht dokumentieren. Und dann kann man es auch wiederum von der Unterklasse via Konstruktor an die Oberklasse so uebergeben, wie es da gesetzt werden soll. Das wuerde ich uebrigens auch in Java nicht anders machen. Es macht naemlich ziemlichen Aerger, Klassen so ineinander zu verschraenken.