Во-первых, мы должны получить правильную терминологию. Я не вижу, где вы берете существующую функцию, которую вы наследуете, а затем переопределяете ее, чтобы иметь дополнительные параметры. Когда вы кодируете:
class masters_student(student , age):
Вы указываете множественное наследование, то есть вы говорите, что класс masters_student
наследуется как от класса student
, так и от класса age
. Но затем на следующей строке вы набираете:
self.age = age
, что не имеет особого смысла.
Кажется, что вы пытаетесь сделать, это добавить в свой новый класс masters_student
, дополнительный атрибут данных с именем age
. Я даже не могу быть уверен в этом, потому что я никогда не вижу в вашем вопросе кода, который ссылается на age
;Я бы подумал, что это будет использовано в методе qualify
. Но при условии, что это ваше намерение, есть несколько способов сделать это в зависимости от того, используете ли вы Python 3 или Python 2. Самый простой способ, который работает на Python 2 или Python 3, будет:
class masters_student(student):
def __init__(self, name, major, Gpa, loan, age):
student.__init__(self, name, major, Gpa, loan) # initialize the base class
self.age = age
Если вы используете Python 3, вы также можете кодировать:
class masters_student(student):
def __init__(self, name, major, Gpa, loan, age):
super().__init__(name, major, Gpa, loan) # initialize the base class
self.age = age
Если вы используете Python 2 (или Python 3), вы также можете кодировать:
class masters_student(student):
def __init__(self, name, major, Gpa, loan, age):
super(masters_student, self).__init__(name, major, Gpa, loan) # initialize the base class
self.age = age
Но,вы должны убедиться, что ваш базовый класс, student
в этом случае, наследуется от класса object
:
class student(object):
Когда вы используете super()
для инициализации базовых классов, базовые классы также должны использоватьsuper()
для инициализации базовых классов и классов братьев и сестер.