Heim >Backend-Entwicklung >Python-Tutorial >Warum schlägt mein Python-Klassenkonstruktor mit „TypeError: Beispiel() akzeptiert keine Argumente' oder „AttributeError' fehl?

Warum schlägt mein Python-Klassenkonstruktor mit „TypeError: Beispiel() akzeptiert keine Argumente' oder „AttributeError' fehl?

Linda Hamilton
Linda HamiltonOriginal
2024-11-30 00:08:14178Durchsuche

Why Does My Python Class Constructor Fail with `TypeError: Example() takes no arguments` or `AttributeError`?

Verwechslung mit der Benennung von Klassenkonstruktoren:

Während der Klassenerstellung stoßen neue Python-Programmierer häufig auf Fehler im Zusammenhang mit falsch benannten Klassenkonstruktoren. Zwei häufige Tippfehler sind die Verwendung von „def __int__“ anstelle von „def __init__“ oder „def _init_“ anstelle von „def __init__“.

"def __int__":

Der Klassenkonstruktor sollte „__init__“ mit zwei Unterstrichen auf jeder Seite heißen. Durch die Verwendung von „def __int__“ wird der Klasse die Ganzzahlkonvertierungsfunktion zugewiesen, was zu Fehlern führt, wenn versucht wird, die Klasse mit Argumenten zu instanziieren.

class Example:
    def __int__(self, parameter):  # Incorrect
        self.attribute = parameter

"def _init_":

Die Verwendung von „def _init_“ führt ebenfalls zu Fehlern, da es nicht mit dem erwarteten Konstruktor übereinstimmt name.

class Example:
    def _init_(self, parameter):  # Incorrect
        self.attribute = parameter

"TypeError: Beispiel() akzeptiert keine Argumente":

Beim Versuch, eine Instanz der Klasse zu erstellen, wird der Fehler „TypeError: Beispiel () akzeptiert keine Argumente“ tritt auf, weil der falsche Konstruktorname die Ganzzahlkonvertierungsfunktion zugewiesen hat.

“AttributeError: „Beispiel“-Objekt hat kein Attribut „Attribut“:

Dieser Fehler weist darauf hin, dass die Klasseninstanz nicht das erwartete Attribut hat. Der Grund dafür ist, dass der falsche Konstruktorname das Attribut innerhalb der Klasse nicht gesetzt hat.

Vorbeugung:

Um diese Fehler zu vermeiden, stellen Sie immer sicher, dass der Klassenkonstruktor wird korrekt als „__init__“ benannt. Um diese Tippfehler zu erkennen, sind Korrekturlesen und Schulung unerlässlich. Darüber hinaus kann die Konvention, „__init__“ als erste Methode in der Klasse zu platzieren, dazu beitragen, Fehler zu vermeiden.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein Python-Klassenkonstruktor mit „TypeError: Beispiel() akzeptiert keine Argumente' oder „AttributeError' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn