Python 继承一个函数后,如何给它更多的参数
我为我的Python 继承一个函数后,如何给它更多的参数,python,inheritance,parameters,Python,Inheritance,Parameters,我为我的masters\u student类继承了一个student类,并且所有函数都按预期工作,但我想给我的masters\u student类另一个名为Age的参数 我怎么能这么做 class masters_student(student , age): self.age = age def qualify(self): if self.Gpa > 3.0 : print("You qualify for
masters\u student
类继承了一个student
类,并且所有函数都按预期工作,但我想给我的masters\u student
类另一个名为Age
的参数
我怎么能这么做
class masters_student(student , age):
self.age = age
def qualify(self):
if self.Gpa > 3.0 :
print("You qualify for the masters Programme")
else:
print("you dont qualify for Masters programme")
然后它显示一个错误
class student:
def __init__(self, name, major, Gpa, loan):
self.name = name
self.major = major
self.Gpa = Gpa
self.loan = loan
def On_honour_roll(self):
if self.Gpa >= 3.5:
return True
else:
return False
class masters_student(student):
def qualify(self):
if self.Gpa > 3.0 :
print("You qualify for the masters Programme")
else:
print("you dont qualify for Masters programme")
这里有一些关于[]的文档 您需要告诉python如何实例化父类之后的子类
class master_student(student):
def __init__(self, name, major, Gpa, loan, age):
super(student, self).__init__(name, major, Gpa, loan)
self.age = age
这应该行得通。这里有一些关于[]的文档 您需要告诉python如何实例化父类之后的子类
class master_student(student):
def __init__(self, name, major, Gpa, loan, age):
super(student, self).__init__(name, major, Gpa, loan)
self.age = age
这应该是可行的。首先,我们必须正确使用术语。我看不出您将从何处获取继承的现有函数,然后将其重新定义为具有其他参数。当您编写代码时:
self.age = age
class masters\u学生(学生,年龄):
您指定的是多重继承,也就是说,classmasters\u student
继承自classstudent
和classage
。但在下一行,您编码:
self.age = age
这没什么意义
似乎你要做的是在你的新班级,masters\u 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
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
如果您正在运行Python 2(或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
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,继承自classobject
:
class student(object):
使用
super()
初始化基类时,基类也必须使用super()
初始化它们的基类和同级类。首先,我们必须正确使用术语。我看不出您在哪里使用继承的现有函数,然后将其重新定义为具有附加参数。编写代码时:
self.age = age
class masters\u学生(学生,年龄):
您指定的是多重继承,也就是说,classmasters\u student
继承自classstudent
和classage
。但在下一行,您编码:
self.age = age
这没什么意义
似乎你要做的是在你的新班级,masters\u 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
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
如果您正在运行Python 2(或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
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,继承自classobject
:
class student(object):
使用super()
初始化基类时,基类也必须使用super()
初始化其基类和同级类