Python-Selbstargument

Python-Klassen mussen instanziiert oder aufgerufen werden, bevor Sie auf ihre Methoden zugreifen k√∂nnen. Wenn Sie vergessen, ein Objekt einer Klasse zu instanziieren und versuchen, auf eine Klassenmethode zuzugreifen, erhalten Sie eine Fehlermeldung mit der Meldung "ein erforderliches Positionsargument fehlt: ‚Äòself‚Äô‚".

In diesem Guide, sprechen wir daruber, was dieser Fehler bedeutet und warum er ausgelöst wird. Wir fuhren ein Beispiel fur diesen Fehler in Aktion durch, damit Sie lernen, wie Sie ihn beheben können.

Ein erforderliches Positionsargument fehlt: ‘selbst’

Positionsargumente beziehen sich auf Daten, die in eine Funktion ubergeben. In einer Klasse muss jeder Funktion der Wert "self‚" zugewiesen werden. Der Wert von ‚Äûselbst‚" ist √§hnlich wie ‚Äûdieses‚" in JavaScript. ‚Äûselbst‚" stellt die in einem Objekt einer Klasse gespeicherten Daten dar.

Wenn Sie eine Klassenmethode aufrufen, ohne zuerst ein Objekt dieser Klasse zu instanziieren, erhalten Sie einen Fehler. Dies liegt daran, dass "selbst‚" hat keinen Wert, bis ein Objekt instanziiert wurde.

Die h√§ufigsten Fehler, die dazu fuhren, dass "ein erforderliches Positionsargument fehlt: ‚Äòselbst‚Äô‚" Fehler sind:

  • Vergessen, ein Objekt einer Klasse zu instanziieren
  • Verwenden der falschen Syntax, um eine Klasse zu instanziieren

Lassen Sie uns jede dieser Ursachen einzeln durchgehen.

Ursache #1: Vergessen, ein Objekt zu instanziieren

Ein Objekt muss instanziiert werden, bevor Sie auf eine Methode in einer Klasse zugreifen können.< br>

Definieren Sie einen Kurs, der Informationen uber einen Helden in einem Videospiel speichert:

81 % der Teilnehmer gaben an, dass sie sich nach dem Besuch eines Bootcamps hinsichtlich ihrer Berufsaussichten im Tech-Bereich sicherer fuhlten. Lassen Sie sich noch heute in ein Bootcamp einweisen.

Der durchschnittliche Bootcamp-Absolvent verbrachte weniger als sechs Monate im Karriereubergang, vom Beginn eines Bootcamps bis zur Suche nach seinem ersten Job.

Als Nächstes fugen wir ein Funktion an unsere Klasse. Funktionen innerhalb von Klassen werden Methoden genannt. Diese Methode gibt den Namen eines Spielers und seinen Spielertyp aus:

Versuchen Sie, auf unsere Klasse zuzugreifen, damit wir einen Spieler erstellen können: ;

Wir haben erstellt ein Objekt, das der Variable "luke‚" zugewiesen ist. Dieses Objekt wird von der Hero-Klasse abgeleitet. Wir rufen die Methode show_player() auf, um Informationen uber den Spieler anzuzeigen.

Lassen Sie unseren Code insgesamt ausfuhren und sehen, was passiert:

Unser Code schlägt fehl. Dies liegt daran, dass wir kein Objekt von Hero instanziiert haben. Hero.show_player() funktioniert nicht, da wir keinen Hero erstellt haben, dessen Informationen angezeigt werden.

Um diesen Fehler zu beheben, instanziieren wir zuerst ein Objekt, bevor wir show_player() aufrufen:

Fuhren Sie unseren Code erneut aus:

Unser Code wird erfolgreich ausgefuhrt! Wir haben zuerst eine Abweichung deklariert ble genannt "luke‚" die Informationen uber einen Spieler namens Luke speichert. Lukes Spielertyp ist "Magier‚". Nachdem wir dieses Objekt nun instanziiert haben, k√∂nnen wir die Methode show_player() aufrufen.

Ursache #2: Falsche Instanziierung einer Klasse

Das "fehlende 1 erforderliches Positionsargument: ‚Äòselbst‚Äô‚" Fehler kann auftreten, wenn Sie eine Klasse falsch instanziieren. Betrachten Sie den folgenden Code:

Obwohl dieser Code unserer Lösung aus dem letzten Beispiel ähnelt, ist er falsch. Dies liegt daran, dass wir nach dem Wort Hero keine Klammern hinzugefugt haben. Wenn diese Klammern fehlen, weiß unser Programm nicht, dass wir eine Klasse instanziieren möchten.

L√∂sen Sie dieses Problem, indem Sie nach Hero Klammern hinzufugen und die erforderlichen Argumente "name‚" und "player_type‚":

Unser Code läuft nun erfolgreich und gibt Informationen uber unseren Player zuruck:

Schlussfolgerung

Das "fehlende 1 erforderliche Positionsargument: ‚Äòselbst‚Äô‚" error wird ausgel√∂st, wenn Sie ein Objekt einer Klasse nicht instanziieren, bevor Sie eine Klassenmethode aufrufen. Dieser Fehler wird auch ausgel√∂st, wenn Sie eine Klasse falsch instanziieren.

Um diesen Fehler zu beheben, stellen Sie sicher, dass Sie zuerst ein Objekt einer Klasse instanziieren, bevor Sie versuchen, auf eine der Methoden dieser Klasse zuzugreifen. √úberprufen Sie dann, ob Sie das Recht verwenden Syntax zum Instanziieren eines Objekts.

Jetzt sind Sie bereit, diesen häufigen Fehler wie ein Python-Experte< . zu beheben /a>!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method