Heim > Backend-Entwicklung > Python-Tutorial > Warum erhalte ich „TypeError' oder „AttributeError', wenn ich einen Python-Klassenkonstruktor definiere?

Warum erhalte ich „TypeError' oder „AttributeError', wenn ich einen Python-Klassenkonstruktor definiere?

Patricia Arquette
Freigeben: 2024-11-29 18:16:14
Original
965 Leute haben es durchsucht

Why Do I Get `TypeError` or `AttributeError` When Defining a Python Class Constructor?

Nicht übereinstimmende Unterstriche im Namen des Klassenkonstruktors

In Python kommt es beim Erstellen von Klassen häufig zu Fehlern aufgrund nicht übereinstimmender Unterstriche im Namen des Klassenkonstruktors . Anstelle von "def __int__" oder "def _init_" sollte die korrekte Syntax "def __init__" mit zwei Unterstrichen auf jeder Seite sein.

TypeError: Klassenmethode akzeptiert Nr Argumente

Wenn der Klassenkonstruktor keine Argumente akzeptiert, kann ein TypeError auftreten, der besagt, dass die Klasse „keine Argumente akzeptiert“. Dies liegt daran, dass die Methode "__int__" mit nicht übereinstimmenden Unterstrichen syntaktisch gültig, aber kein gültiger Klassenkonstruktor ist. Infolgedessen greift Python auf den Basisobjektkonstruktor zurück, der keine Argumente akzeptiert.

AttributeError: Attribute Missing from Class Instance

Alternativ, wenn die Klasse Wenn der Konstruktor Argumente entgegennimmt, Attribute jedoch nicht ordnungsgemäß initialisiert, kann es beim Zugriffsversuch zu einem AttributeError kommen diese Attribute. Dies liegt daran, dass die Methode "_init_" mit nicht übereinstimmenden Unterstrichen die Attribute nicht korrekt initialisiert.

Erklärung von Ausnahmemeldungen

  • TypeError weist auf ein Problem mit den Typen von Argumenten oder Parametern in einer Funktion oder Klasse hin Konstruktor.
  • AttributeError gibt an, dass ein Objekt nicht über das angegebene Attribut verfügt.

Prävention und Schadensbegrenzung

Um diese Fehler zu vermeiden, verwenden Sie die korrekte Schreibweise und Syntax für den Klassenkonstruktor, nämlich "def __init__(self, ...)" mit zwei Unterstrichen auf jeder Seite. Korrekturlesen und sorgfältige Liebe zum Detail können dabei helfen, diese Tippfehler zu vermeiden. Darüber hinaus kann die Verwendung einer Konvention, bei der "__init__" als erste Methode in einer Klasse platziert wird, als Erinnerung an deren korrekte Implementierung dienen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich „TypeError' oder „AttributeError', wenn ich einen Python-Klassenkonstruktor definiere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage