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学生(学生,年龄):

您指定的是多重继承,也就是说,class
masters\u student
继承自class
student
和class
age
。但在下一行,您编码:

    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,继承自class
object

class student(object):

使用
super()
初始化基类时,基类也必须使用
super()
初始化它们的基类和同级类。

首先,我们必须正确使用术语。我看不出您在哪里使用继承的现有函数,然后将其重新定义为具有附加参数。编写代码时:

    self.age = age
class masters\u学生(学生,年龄):

您指定的是多重继承,也就是说,class
masters\u student
继承自class
student
和class
age
。但在下一行,您编码:

    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,继承自class
object

class student(object):
使用
super()
初始化基类时,基类也必须使用
super()
初始化其基类和同级类