Wie wird ein Elternklassenattribut von einer geerbten Klasse in Python festgelegt und abgerufen?

9

Ich habe die Family und ihre vererbten Person -Klassen. Wie bekomme ich das Attribut familyName aus der Klasse Person ?

%Vor%

Lassen Sie zum Beispiel diese Family und Person Objekte:

%Vor%

Ich möchte etwas tun wie:

%Vor%

und erhalten 'Strauss' . Wie kann ich das tun?

    
msampaio 13.04.2013, 15:07
quelle

2 Antworten

22

Sie können nicht.

Instanzen erben nur die Methoden und Attribute der Elternklasse, nicht die Instanz Attribute. Sie sollten die beiden nicht verwechseln.

strauss.familyName ist ein Instanz Attribut einer Family Instanz. Die Person -Instanzen hätten ihre eigenen Kopien des familyName -Attributs.

Normalerweise würde der Person -Konstruktor zwei Argumente enthalten:

%Vor%

Ein alternativer Ansatz wäre, dass Person einen Verweis auf eine Family -Instanz enthält:

%Vor%

wobei Person nicht mehr von Family erbt. Benutze es wie:

%Vor%     
Martijn Pieters 13.04.2013, 15:10
quelle
4

Zusätzlich zu Martijns Vorschlägen können Sie auch die Person aus der Familieninstanz erstellen, sodass die Familie ihre Mitglieder verfolgen kann:

%Vor%

Verwendung wie folgt:

%Vor%     
Lennart Regebro 13.04.2013 15:24
quelle

Tags und Links