Attribute ohne Wert in Oberklasse vereinbaren?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
fffg
User
Beiträge: 11
Registriert: Montag 21. Dezember 2020, 15:29

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.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Antworten