Python: Das Objekt 'super' hat kein Attribut 'attribute_name'

7

Ich versuche auf eine Variable aus der Basisklasse zuzugreifen. Hier ist die Elternklasse:

%Vor%

Und hier ist die Kindklasse:

%Vor%

Wenn ich jetzt versuche, diesen Code auszuführen:

%Vor%

Ich bekomme die folgende Ausnahme:

%Vor%

Was mache ich falsch? Was ist die empfohlene Methode für den Zugriff auf Variablen aus der Basisklasse in Python?

    
invarbrass 20.05.2011, 17:48
quelle

2 Antworten

17

Nach dem __init__ der Basisklasse wurden für das abgeleitete Objekt die Attribute festgelegt (z. B. some_var ), da es das gleiche Objekt ist wie self in der abgeleiteten Klasse __init__ . Sie können und sollten einfach self.some_var überall verwenden. super dient zum Zugriff auf Zeug aus Basisklassen, aber Instanzvariablen sind (wie der Name schon sagt) Teil einer Instanz, nicht Teil der Klasse dieser Instanz.

    
delnan 20.05.2011, 17:50
quelle
4

Das Attribut some_var existiert nicht in der Elternklasse.

Wenn Sie es in __init__ festgelegt haben, wurde es in der Instanz Ihrer untergeordneten Klasse erstellt.

    
Marek P 20.05.2011 17:57
quelle

Tags und Links