如何在子类中添加实例属性?

时间:2017-07-30 15:26:39

标签: python

这是我的代码:

class Person:
    def __init__(self, name):
        self.name = name


class Student(Person):

    def register(self, school):
        pass
    def payfee(self, money):
        pass
    def chooseClassAndGrand(self, obj):
        pass

class Teacher(Person):
    pass

如果我不想重写class方法,我想在Student类中添加一个__init__()实例属性,如何在Student类代码中添加它?

2 个答案:

答案 0 :(得分:2)

您无需重写__init__。假设您在创建Person的实例时需要调用__init__的{​​{1}}功能,您可以在Student __init__函数内使用super关键字{1}}:

Student

如果您使用的是python< 3.0,你可以使用

class Student(Person):
    def __init__(self):
        super().__init__() # python3.0+
        self.classAndGrade = ...

    ...

这是最简单的方法。

答案 1 :(得分:0)

添加到COLDSPEED,您还可以使用以下内容添加属性:

class Student(Person):
    def __init__(self, name, classAndGrade):
        Person.__init__(self, name)
        self.classAndGrade = classAndGrade

    ...