2016-07-26 13 views
-1

Mein Code funktioniert nicht in Sublime Text 3 und der Fehler wird unten angezeigt. Es funktioniert jedoch in IDLE und ich bin ziemlich verwirrt. Ich habe ähnliche Fragen gelesen, aber es scheint, dass sie nicht genau mein Problem sind. Kann mir jemand sagen, was ich falsch gemacht habe? Vielen Dank.Python - TypeError: Fehler beim Aufruf der Metaklassen-Basen int() benötigt höchstens 2 Argumente (3 gegeben)

class Animal(object): 
    def __init__(self, name): 
     self.name = name 
zebra = Animal("Jeffrey") 
print zebra.name 

TypeError: Error when calling the metaclass bases 
int() takes at most 2 arguments (3 given) 
+4

'int() braucht höchstens 2 Argumente'? Wo im Code verwendest du einen int? –

+1

Ist das der gesamte Ausnahme-Stack? – Nik

+0

Ich habe eine neue Datei geöffnet, den Code erneut geschrieben und jetzt funktioniert es! – user214969

Antwort

0

Ich vermute, Sie hatten object neu definiert, als Sie den Fehler erhielten. Wenn object an eine Ganzzahl gebunden war (z. B. nach object = 3 oder ähnlich), wird jede class-Anweisung, die object als Basis eindeutig benannt, genau die Ausnahme verursachen, die Sie beschreiben.

Dies ist ein gutes Beispiel, warum es eine schlechte Idee ist, die Namen von eingebauten Objekten (wie object selbst) für Ihre eigenen Variablen zu verwenden. Es ist legal, die Namen zu verwenden, aber das kann sehr verwirrende Fehler in anderen Teilen Ihres Codes verursachen, wenn Sie sich nicht erinnern, dass der Name beschattet wurde.