python - 继承一个函数后如何给它更多参数
问题描述
student
我为我的班级继承了一个班级masters_student
,并且所有功能都按预期工作,但我想给我的masters_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")
解决方案
首先,我们必须正确使用我们的术语。我看不到您将继承的现有函数放在哪里,然后重新定义它以具有其他参数。当你编码时:
class masters_student(student , age):
您正在指定多重继承,也就是说,您说 classmasters_student
继承自 classstudent
和 class age
。但是在下一行你编码:
self.age = age
这没有太大意义。
似乎您正在尝试做的是向您的新类添加一个名为masters_student
的附加数据属性age
。我什至无法确定这一点,因为我从未在您的问题中看到任何引用的代码age
;我原以为它将用于 method 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
继承自 class object
:
class student(object):
当你super()
用来初始化基类时,基类也必须super()
用来初始化它们的基类和兄弟类。
推荐阅读
- android - 从其他访问android模拟器IP地址
- scala - Spark Scala - 比较列值,然后将结果与另一列进行比较
- javascript - 如何在不闪烁的情况下删除谷歌地图标记?
- java - Hibernate:如何为枚举类型的列指定@ColumnDefault
- ludwig - 路德维希预处理
- php - PHP 干预 orientate() 不适用于 iphone
- abap - 如何找到 BAPI 函数所需的表?
- javascript - 角度测试按文本获取元素
- python-3.x - 得到 TypeError ,我不知道为什么?
- javascript - Chrome 扩展程序没有读取我的 API 的图像值?