美文网首页
类的继承中super的使用

类的继承中super的使用

作者: 盗花 | 来源:发表于2019-02-13 15:58 被阅读1次

有一个类如下:

# 创建父类学校成员SchoolMember
class SchoolMember:

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def tell(self):
        # 打印个人信息
        print('Name:"{}" Age:"{}"'.format(self.name, self.age), end=" ")


# 创建子类老师 Teacher
class Teacher(SchoolMember):

    def __init__(self, name, age, salary):
        SchoolMember.__init__(self, name, age) # 利用父类进行初始化
        self.salary = salary

    # 方法重写
    def tell(self):
        SchoolMember.tell(self)
        print('Salary: {}'.format(self.salary))


# 创建子类学生Student
class Student(SchoolMember):

    def __init__(self, name, age, score):
        SchoolMember.__init__(self, name, age)
        self.score = score

    def tell(self):
        SchoolMember.tell(self)
        print('score: {}'.format(self.score))


teacher1 = Teacher("John", 44, "$60000")
student1 = Student("Mary", 12, 99)

teacher1.tell()  # 打印 Name:"John" Age:"44" Salary: $60000
student1.tell()  # Name:"Mary" Age:"12" score: 99

上述类的继承中,使用了SchoolMember.__init__(self, name, age)SchoolMember.tell(self)两个方法实现实例初始化与tell函数,更好的编程实践是使用super方法实现继承。

super()关键字调用父类方法

在子类当中可以通过使用super关键字来直接调用父类的中相应的方法,简化代码。在下面例子中,学生子类调用了父类的tell()方法。super().tell()等同于SchoolMember.tell(self)。当你使用Python super()关键字调用父类方法时时,注意去掉括号里self这个参数。

# 创建子类学生Student
class Student(SchoolMember):

    def __init__(self, name, age, score):
        super(Student, self).__init__(name, age)
        self.score = score

    def tell(self):
        super().tell() # 等同于 SchoolMember.tell(self)
        print('score: {}'.format(self.score))

相关文章

  • 类访问权限

    java中仅有单继承,没有多继承。 java中使用super来调用父类中的指定操作: super可以用于访问父类中...

  • 第十一章继承

    使用继承 父类 子类 子类访问父类成员 super 使用super 关键字,super代表父类对象 访问父类的构...

  • TypeScript基础语法 - 类的基本使用(三)

    TypeScript 中类的概念和使用 类的基本使用 类的继承 类的重写 super 关键字的使用 TypeScr...

  • 类的继承中super的使用

    有一个类如下: 上述类的继承中,使用了SchoolMember.__init__(self, name, age)...

  • python中super的使用

    super的简单用法 多继承中super的使用   super简单的说是调用父类的方法,不管是父类的初始化方法还是...

  • React

    super() / super(props) 子类继承父类的属性:需要使用super()继续父类的属性,同时创建t...

  • 1、继承中super和this关键字的使用

    继承中super和this关键字的使用 super关键字的使用 在子类的成员方法中,访问父类的成员变量。 在子类的...

  • django自定义User模型(xadmin)

    继承AbstractBaseUser类 继承PermissionsMixin类是因为想要,该类中的is_super...

  • super关键字继承树追溯

    super关键字的使用 ChildClass类 继承 FatherClass类 继承Object类形成一个追溯树 ...

  • 类的继承

    类的继承通过extends关键字,子类继承了父类的所有属性和方法 super关键字super() 作为函数使用su...

网友评论

      本文标题:类的继承中super的使用

      本文链接:https://www.haomeiwen.com/subject/pojdeqtx.html