super真的是调用父类吗?
2024-08-28 10:10:52
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat class A: def __init__(self): print("A") class B(A): def __init__(self): print("B") super(B, self).__init__() class C(A): def __init__(self): print("C") super(C, self).__init__() class D(B, C): def __init__(self): print("D") super(D, self).__init__() d = D() # 那么会打印什么结果 # 我们可能会想到,d = D(),首先会打印D,再执行父类的init方法,然后打印B,然后打印A # 所以运行结果应该是依次打印,D,B,A # 然而运行结果是 ''' D B C A ''' # 为什么会是这样,首先说super调用父类其实不太准确,super调用是基于mro线性查找 print(D.__mro__) ''' <class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>) ''' # 所以会依次调用类D,C,B,A的构造方法
最新文章
- 在Visual Studio Code中配置GO开发环境
- U3D 动画帧事件问题
- Apache-Commons包作用说明
- highchart 设置双Y轴坐标 双x轴坐标方法
- 【原创】OPA857 TEST模式使用
- Berkeley DB的常见API简单分析
- phalcon: Profiling分析 profilter / Plugin结合,dispatcher调度控制器 监听sql执行日志
- 【转】cocos2d-x学习笔记03:绘制基本图元
- mysql通过SOURCE导入SQL时报错处理
- 监听手机晃动(摇一摇)SensorEventListener
- tp5中设置指定的log日志,可单独建立文件夹和文件名
- [POI2009]KAM-Pebbles
- docker的网络访问
- 从已删除邮箱copy数据到活动邮箱
- MySQL 之 MHA + ProxySQL + keepalived 实现读写分离,高可用(三)
- Siamese Neural Networks for One-shot Image Recognition
- 值类型之间的相互转化,运算符,if条件判断,循环,函数
- python中的sockeserver模块简单实用
- 关于Jquery使用中遇到典型问题集锦
- [转载]AMD 的 CommonJS wrapping
热门文章
- 命名空间“System.Web.Http”中不存在类型或命名空间名称“Description”(是否缺少程序集引用?)
- 关于JavaScript设计模式的学习(二)
- JNDI和JDBC的区别和联系及其使用方法
- ThreadLocal 学习
- Anaconda基本使用
- 那些牛掰的 HTML5的API(二)
- RabbitMQ磁盘警报
- Scala 基础(1)—— 定义变量 &; 定义函数
- vue.$refs 的用法
- POJ 3090 Visible Lattice Points | 其实是欧拉函数