目录
在Python这个广受欢迎的编程语言中,类继承是一项强大而精巧的特性。通过类继承,我们可以构建出更加灵活、可重用和易维护的代码,同时实现代码的模块化和扩展性。
但是如果对于熟悉C++和java的人而言,首次接触python的类继承,可能会因__init__函数同名覆盖问题而困惑。下面将详细介绍该问题。
1.问题描述
python中__init__函数可以类比为C++中的构造函数,都是对成员变量进行初始化。当创建子类对象的时候,默认情况下,C++中会先调用父类的默认构造函数,在调用子类的默认构造函数。而在python由于初始化函数都是__init__,那么创建子类对象的时候,存在同名函数问题,那会默认调用父类的__init__函数嘛?如果没有调用会发生什么情况?应该怎么解决呢?
2.代码演示
python中创建子类,__init__函数的调用可以分为三种情况来验证:
(1)子类重写了__init__函数,显式调用父类__init__
(2)子类重写__init__函数,未显式调用父类__init__
(3)子类未重写__init__函数,未显式调用父类__init__
class CBase:
def __init__(self) -> None:
print("this is Bas