2012-09-24 14 views
30

Quindi, se ho una classe:Chiamare un costruttore della classe genitore da una classe figlia in python

class Person(object): 
'''A class with several methods that revolve around a person's Name and Age.''' 

    def __init__(self, name = 'Jane Doe', year = 2012): 
     '''The default constructor for the Person class.''' 
     self.n = name 
     self.y = year 

E poi questo sottoclasse:

class Instructor(Person): 
'''A subclass of the Person class, overloads the constructor with a new parameter.''' 
    def __init__(self, name, year, degree): 
     Person.__init__(self, name, year) 

io sono un po 'perso su come ottenere la sottoclasse per chiamare e utilizzare il costruttore della classe genitore per name e year, aggiungendo il nuovo parametro degree nella sottoclasse.

+3

Qual è il problema con quello che hai? – BrenBarn

+0

quello che stai facendo dovrebbe andare bene ... –

+0

Oh, ok, non ero sicuro e non riuscivo a capire un modo per testarlo ... Vedo che ero corretto tutto il tempo ... le mie scuse. –

risposta

53

Python consiglia di utilizzare super().

Python 2:

super(Instructor, self).__init__(name, year) 

Python 3:

super().__init__(name, year) 
+2

Questo dovrebbe essere 'super (Instructor, ...)'. –

Problemi correlati