Warum die Klasseninitialisierung mit „def __int__“ oder „def _init_“ fehlschlägt
Problem:
Beim Versuch, eine Klasse mit einem Konstruktor namens „def __int__“ oder „def _init_“, treten Fehler auf wie „TypeError: Beispiel() akzeptiert keine Argumente“ oder „AttributeError: ‚Beispiel‘-Objekt hat kein Attribut ‚Attribut‘.“
Ursache:
Diese Fehler treten aufgrund eines Tippfehlers auf, bei dem der Konstruktor falsch benannt ist. Der korrekte Name für den Konstruktor lautet "__init__", mit zwei Unterstrichen auf jeder Seite.
Erklärung der Ausnahmemeldungen:
Warum ist der Fehler nicht aufgetreten? Früher:
Die Syntaxfehlerprüfung erkennt diesen Fehler nicht, da die Methodennamen „def __int__“ und „def _init_“ syntaktisch gültig sind. Python weist diesen Namen keine besondere Bedeutung zu.
Mögliche Konsequenzen:
Wenn die Klasse nicht ordnungsgemäß initialisiert wird, kann dies zu unvorhersehbarem Verhalten führen, einschließlich fehlender Attribute oder Laufzeitfehler .
Schutz vor dem Problem:
Das obige ist der detaillierte Inhalt vonWarum schlägt die Initialisierung meiner Klasse mit „__int__' oder „_init_' anstelle von „__init__' fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!