Objekte in Python verstehen

7

Ich bin ein wenig verwirrt durch das Objektmodell von Python. Ich habe zwei Klassen, die eine erbt von der anderen.

%Vor%

Ich versuche nicht, die Methode __ init __ () zu überschreiben, sondern eine Instanz eines Atoms mit Attributen zu erstellen und Bezeichner .

So:

%Vor%

Ich möchte also auf Atom.identifier und Atom.symbol zugreifen können, sobald eine Instanz von Atom erstellt wurde.

Wie kann ich das tun?

    
Tomas Novotny 05.11.2010, 16:09
quelle

6 Antworten

7
%Vor%

Es ist eine gute Idee, in Ihrem Code von Objekt zu übernehmen.

    
aeter 05.11.2010, 16:15
quelle
6

Sie müssen die __init__ -Methode der Super-Klasse manuell aufrufen.

%Vor%     
Björn Pollex 05.11.2010 16:12
quelle
3

Beim Erstellen einer Klasse müssen Sie das self-Wort in der Deklaration verwenden. Danach können Sie die anderen Argumente definieren. Um zu erben, rufen Sie die super Methode init auf:

%Vor%     
Magnun Leno 05.11.2010 16:18
quelle
2

Sie haben zwei fehlende Dinge in Ihrem Code:

  1. Methoden, die zu einer Klasse gehören, müssen einen expliziten self Parameter haben, den Sie vermissen

  2. Ihre abgeleitete Klasse 'Atom' muss auch den Parameter akzeptieren, der zum Initialisieren der Basisklasse benötigt wird.

Etwas mehr wie:

%Vor%     
bgporter 05.11.2010 16:17
quelle
1
%Vor%

Punkte:

  • Knoten sollte von object .
  • erben
  • Verwenden Sie super , um die __init__ -Funktionen der übergeordneten Klassen aufzurufen.
  • Klassenmemberfunktionen nehmen self als ersten Parameter in Python.
nmichaels 05.11.2010 16:17
quelle
1
%Vor%

Siehe hier für eine Erklärung der *args und **kwargs . Mit super können Sie auf die Basisklasse (Superklasse) der Atom-Klasse zugreifen und sie aufrufen %Code%. Außerdem muss der Parameter __init__ ebenfalls enthalten sein.

    
user470379 05.11.2010 16:13
quelle

Tags und Links