Was verursacht "ungebundene Methode __init __ () muss mit Instanz als erstes Argument" von diesem Python-Code aufgerufen werden?

8

Ich habe diese Klasse:

%Vor%

und rufe es mit diesem Skript an:

%Vor%

und bekomme diesen Fehler und ich kann nicht herausfinden warum: unbound method __init__() must be called with instance as first argument

    
Leonidas 23.10.2009, 18:24
quelle

4 Antworten

15

Sie tun:

%Vor%

Verwenden:

%Vor%

Oder verwenden Sie super()

    
truppo 23.10.2009, 18:29
quelle
10

Dies ist eine häufig gestellte Frage in SO, aber die Antwort lautet, dass Sie den Konstruktor Ihrer Superklasse wie folgt aufrufen:

%Vor%     
Jonathan Feinberg 23.10.2009 18:29
quelle
1

Sie müssen nur "self" als Argument an "Thread. init " übergeben. Danach funktioniert es auf meinen Maschinen.

    
tsellon 23.10.2009 18:29
quelle
1

Erstens, der Grund, warum Sie verwenden müssen:

%Vor%

statt

%Vor%

ist, weil Sie den Klassennamen und nicht ein Objekt (eine Instanz der Klasse) verwenden, so dass Sie eine Methode nicht wie ein Objekt aufrufen können.

Zweitens: Wenn Sie Python 3 verwenden, ist der empfohlene Stil zum Aufrufen einer Superklassenmethode aus einer Unterklasse:

%Vor%

Obwohl es in Python 3 möglich ist:

%Vor%

Es ist ein alter Syntaxstil, der nicht der bevorzugte Stil ist.

    
lmiguelvargasf 03.11.2015 18:39
quelle

Tags und Links