Heim >Backend-Entwicklung >Python-Tutorial >Warum führt der Aufruf von „getPumps()' zu einem „TypeError: Fehlendes erforderliches „self'-Argument im Methodenaufruf'?
TypeError: Erforderliches Argument „self“ im Methodenaufruf fehlt
Der vorgestellte Codeausschnitt versucht, die getPumps()-Methode der Pumpe aufzurufen Klasse, ohne zuerst eine Instanz der Klasse zu erstellen. Dies führt zu folgendem Fehler:
TypeError: getPumps() missing 1 required positional argument: 'self'
Konstruktor- und Methodenargumente verstehen
In Python ist beim Definieren einer Methode innerhalb einer Klasse das erste Argument immer self , die sich auf die aktuelle Objektinstanz bezieht. Auf diese Weise greifen Methoden auf instanzspezifische Daten zu und bearbeiten sie.
Initialisierung mit __init__()
Die Methode __init__() ist die Konstruktormethode, die aufgerufen wird, wenn eine Instanz von a Klasse wird erstellt. Es wird verwendet, um den internen Zustand des Objekts zu initialisieren.
Methoden für Instanzen aufrufen
Um eine Methode für ein Objekt aufzurufen, muss das Objekt zuerst erstellt werden. Dazu gehört der Aufruf des Klassennamens in Klammern, etwa p = Pump(), um ein neues Objekt zu erstellen. Nur dann können Sie Methoden für diese Instanz aufrufen, z. B. p.getPumps().
Code-Update
Um den Fehler zu beheben, müssen Sie eine Instanz von erstellen die Pump-Klasse vor dem Aufruf von getPumps(). Der aktualisierte Code:
class Pump: def __init__(self): print("init") def getPumps(self): pass # Create an instance of the Pump class p = Pump() # Now call the getPumps() method p.getPumps()
Zusätzliches Beispiel
Der Übersichtlichkeit halber hier ein detaillierteres Beispiel:
class TestClass: def __init__(self): print("init") def testFunc(self): print("Test Func") # Create an instance of the test class testInstance = TestClass() # Call the testFunc() method on the instance testInstance.testFunc()
Ausgabe:
init Test Func
Das obige ist der detaillierte Inhalt vonWarum führt der Aufruf von „getPumps()' zu einem „TypeError: Fehlendes erforderliches „self'-Argument im Methodenaufruf'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!