python3类的继承

参考:https://blog.csdn.net/zhouzhiwengang/article/details/119677637

1、继承
python支持类继承,在子类类名后的圆括号()中声明继承的父类,如果没有继承,则可以不加()。
支持多继承,直接写入多个类名,用,分隔。
如果没有指定基类,python的类会默认继承object类。object是所有python类的基类,它提供了一些常见方法(如__str__)的实现。

class Person:
  def __init__(self):
    self.age = 15
class Stu(Person):
  def __init__(self):
    pass

2、子类调用父类
(1)在子类中,如果没有显示声明,那么可以通过self直接调用父类的类变量和不涉及父类对象变量的方法。否则,执行时,会报异常。
(2)在子类中,声明父类.__init__(self),可以通过self调用父类的对象变量和涉及父类对象变量的方法
(3)super

super(父类, self).__init__()
  • 等价于父类.__init__(self)
super().父类方法()
  • 调用父类中的方法
  • self会先在当前类中查找调用的方法,如果没有找到才会查找父类。而super()是直接调用父类方法
  • super()并不能调用父类的对象变量,但是可以调用父类的类变量

3、覆写
如果在子类中定义和父类中相同的方法名,则意味着进行了覆写,并不关心两者的参数列表是否相同。
此时,可以用self调用子类中的重写的方法,而用super()调用父类中的方法。

posted @ 2023-05-28 09:37  挖洞404  阅读(132)  评论(0编辑  收藏  举报