Python单继承,子类调用父类方法,使用super关键字


但是这么写话还是并不符合我们平时写代码的规范,一般都是用super来调用,贴代码:

python 复制代码
# 面向对象的3大特征:继承性,封装性,多态性
class Human():
  sum1 = 0
  def __init__(self, name, age):
    self.name = name
    self.age = age

  def get_name(self):
    print(self.name)  

  def do_homework(self):
    print('parent\'s function')   


class Student(Human):   
  def __init__(self, school, name, age):
    # Human.__init__(self, name, age)
    # 由于开闭原则不建议这么调用,所以改成用super调用
    super(Student, self).__init__(name, age)

  def do_homework(self):
    super(Student, self).do_homework() # 当子类和父类有相同方法名的方法时,只会调子类的方法,可以通过super 手动调父类的方法
    print('print English homework')  


student1 = Student('湖南大学', '石敢当', 18)


student1.get_name()
student1.do_homework()
相关推荐
Fanta丶9 小时前
10.Python class类的定义和魔术方法
python
用户昵称10010 小时前
C/C++编程-工程实践-本地存储log的工程意义
c语言·开发语言
小玮看世界11 小时前
[Python]从“脏”数据到优雅实现:一个IoT滑动窗口最大值问题的测试驱动优化实录
linux·前端·python
吹什么轩11 小时前
c++复习:map和set的使用
开发语言·c++
必须得开心呀11 小时前
qt生成dump文件并定位异常
开发语言·qt
MC皮蛋侠客11 小时前
SQLAlchemy 系列(十一):从 1.x 到 2.x——渐进迁移与数据访问层治理
数据库·python
fpcc11 小时前
跟我学C++中级篇—内存流
开发语言·c++
魔镜前的帅比12 小时前
(开源项目)x-claw (设计)
python·ai·rust·开源
Cicada12812 小时前
ccvt:一个用 Rust 写的中国地图坐标系互转命令行工具
开发语言·后端·rust