Python 2.7 __init __ () nimmt genau 2 argumente (3 gegeben)

Ich habe diese Klassen. Person ist die Elternklasse und Schüler ist die Kinderklasse:

#Person class class person(object): def __init__(self, name): self.name = name def pr(self): print "I'm " + self.name #Student class from personClass import person class student(person): def __init__(self, avr, name): self.avr = avr super(student, self).__init__(self, name) def pr(self): super(student, self).pr(self) print "My avrage is " + str(self.avr) + "\n" 

Ich bekomme diesen Fehler auf Zeile 17, wenn ich versuche, eine Instanz meiner Klasse zu machen init () nimmt genau 2 Argumente (3 gegeben) und Person. Init (selbst, name) funktioniert gut Was ist falsch mit meinem Code und wie benutze ich super in python 2.7?

  • Kann ich Python 3 super () in Python 2.5.6 verwenden?
  • Python super () Verhalten nicht zuverlässig
  • Python, Vererbung, super () Methode
  • Super () und @staticmethod interaktion
  • Python Multi-Vererbung, __init__
  • Python3 - Verhalten von super () auf Multi-Vererbung
  • Python super und Einstellung der übergeordneten Klasse Eigenschaft
  • Gibt es einen Grund, nicht zu senden super () .__ init __ () ein Wörterbuch anstelle von ** kwds?
  • 2 Solutions collect form web for “Python 2.7 __init __ () nimmt genau 2 argumente (3 gegeben)”

    Wenn du super benutzt hast, gehst du nicht self auf die Zielmethode. Es ist implizit vergangen.

     super(student, self).__init__(name) 

    Das sind 2 Argumente insgesamt (Selbst, Name). Wenn du selbst vergangen bist, war das insgesamt 3 (Selbst, Selbst, Name).

    Sie können verwenden

     super(Student, self).__init__(name) 

    In dem das Selbst an die init- Methode übergeben worden ist, also musst du es nicht wieder in der init- Methode schreiben. Aber wenn du benutzt hast

     super(Student, Student).__init__(self, name) 

    oder

     super(Student, self.__class__).__init__(self, name) 

    Du musst dich selbst in der init- Methode aufschreiben.

    Python ist die beste Programmiersprache der Welt.