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
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!