Python 2.x super - __init__ - Vererbung funktioniert nicht, wenn Eltern nicht Erben von object

Habe ich das folgende Python-2.7-code:

class Frame:
    def __init__(self, image):
        self.image = image

class Eye(Frame):
    def __init__(self, image):
        super(Eye, self).__init__()
        self.some_other_defined_stuff()

Ich versuche zu erweitern, die __init__() - Methode so, dass beim instanziieren ich ein "Auge", es hat ein paar andere Sachen (selbst.some_other_defined_stuff()), zusätzlich zu dem, was Frame-sets bis. Frame.__init__() muss zuerst ausgeführt werden.

Bekomme ich die folgende Fehlermeldung:

super(Eye, self).__init__()
TypeError: must be type, not classobj

Was ich nicht verstehe die logische Ursache. Kann sich das jemand erklären bitte? Ich bin verwendet, um nur die Eingabe 'super' in ruby.

  • Frame erweitern müssen object. super funktioniert nur auf new-style-Klassen.
InformationsquelleAutor cjm2671 | 2014-04-16
Schreibe einen Kommentar