python类继承之__init__函数覆盖问题

目录

1.问题描述

2.代码演示

3.总结


在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值