Angesichts der folgenden:Welche impliziten Argumente werden an das Modul __init __() übergeben?
ParentModule.py
class ParentClass():
def __init__(self):
pass
ChildModule.py
class ChildClass(ParentClass):
def __init__(self):
pass
Wenn in ChildModule
, ich importieren fälschlicherweise das übergeordnete Modul und nicht die übergeordnete Klasse, dh :
import ParentModule
statt der korrekten
from ParentModule import ParentClass
ich die folgende Fehlermeldung erhalten:
TypeError: module.__init__() takes at most 2 arguments (3 given)
Also genau das, was sind diese drei implizite Argumente ParentModule's __init__()
bestanden? Was sind die 2 Argumente ParentModule.__init__()
erwartet?
Wie nutzt man diese Funktionalität?
füge ich nicht wiedergeben kann. Sind beide Module im selben Verzeichnis? Der einzige Fehler, den ich bekomme, ist: 'NameError: Name 'ParentClass' ist nicht definiert'. –
Ja, die 'ParentClass' und' ParentModule' hatten wahrscheinlich den gleichen Namen im realen Code, oder der echte Code hatte 'class ChildClass (ParentModule)' anstelle von 'class ChildClass (ParentClass)'. – user2357112
@ChristianDean: Ja, die realen Modul-/Klassennamen wären Parent.Parent und Child.Child, aber ich fühlte, dass die Verwendung dieser Terminologie das Problem nicht geklärt hat. Fühlen Sie sich frei, die Frage zu bearbeiten, wenn Sie denken, dass es so klarer wäre. –