Python内置函数super()简介:继承与重写的得力助手

与您分享python内置函数super()的使用技巧和经验,具体内容如下:
1、 在面向对象编程中使用超内置函数,可以通过一段代码来说明。本文定义了一个名为people的父类,并创建了两个继承自people的子类——teacher教师类和student学生类。接着根据这两个子类,实例化了两个对象S1和T1,分别表示学生和教师。

2、 如果现在需要修改人名、教师班级以及学生班级对应的家长班信息,那么如果从教师类、学生类继承的子类及其调用的父类初始化方法都需要同步修改,这会不会显得很麻烦?其实这个时候就可以借助内置函数 super() 来简化操作。若想在 Python 解释器中查看帮助文档,可按照以下方式操作:

立即学习“Python免费学习笔记(深入)”;
3、 获取以下内容:

4、 super() 是一个内置函数,通过加上括号可以获取一个代理对象。利用 super() 和点号,可以直接调用父类的 \_\_init\_\_ 方法。当该代理对象调用父类的 \_\_init\_\_ 时,实际上是在调用父类的绑定方法,因此不需要手动传入 self 参数。相关推荐:Python视频教程。改进后的代码如下所示:

5、 这样一来,即使更改了父类名称,也不需要修改代码中关于继承父类初始化方法的部分。

6、 使用 super() 函数时,Python 会沿着方法解析顺序(MRO)查找下一个类。只要每个重写的方法都一致地调用 super() 并仅调用一次,控制流最终会遍历整个 MRO 列表,确保每个方法只会被执行一次。通过 super() 调用的属性均依据当前 MRO 列表的位置进行查找。MRO 列表的顺序也反映了子类的继承结构。如果想查看教师子类的 MRO 列表,可通过特定指令实现。

7、 使用 super 可以有效避免多重继承中因父类继承顺序而引发的问题。在子类继承父类的数据与函数属性时,首次执行的代码起作用。若后续代码与之前存在冲突,则后者会覆盖前者。如果不使用 super,就必须手动处理继承顺序问题,而 super 能自动解决此类冲突,确保正确的继承逻辑。
免责声明
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
荣耀GT2/500系列手机年底发布:小屏机与小平板明年亮相
10 月 24 日消息,据 @数码闲聊站 今日爆料,荣耀 GT2 系列和荣耀 500 系列暂定排期都是年底,开始入网备案了。另外,小屏机和小平板目前都在正常打磨中,明年见。注意到,该博主本月早些时
OPPO Reno15首发天玑8450与2亿像素HP5主摄配置揭晓
10 月 24 日消息,博主 @数码闲聊站 今日曝光 OPPO Reno 15 系列参数,两款机型均搭载天玑 8450 处理器、2 亿像素 HP5 主摄等。整理如下:OPPO Reno 156 3
Nothing Phone (3a) Lite确认搭载联发科天玑7300,11月4日欧洲发布
10 月 24 日消息,@Abhishek Yadav 今天在 Geekbench 中发现了一款神秘 Nothing 新机,并称其为 Nothing Phone (3a) Lite。从 Geekb
华硕ROG Phone《崩坏3》联动礼盒开箱:含爱莉希雅主题限定配件
10 月 24 日消息,华硕昨日正式宣布推出 ROG Phone 9 系列手机与游戏《崩坏 3》联名限定礼盒。该礼盒以角色爱莉希雅为核心元素,打造出粉色浪漫的主题效果。ROG × 《崩坏 3》联名
三星Exynos芯片新突破:5G基带首次集成AI核心
10 月 24 日消息,科技媒体 Wccftech 昨日(10 月 23 日)发布博文,报道称三星正开发一款革命性的 Exynos 芯片,其核心创新在于首次将 NPU(神经网络处理单元)直接集成到
相关攻略
热门教程
更多- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程








