Python3基础 super层层调用父类的__init__方法 子类的__init__覆盖了父类的__init__的解决方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3基础 super层层调用父类的__init__方法 子类的__init__覆盖了父类的__init__的解决方法相关的知识,希望对你有一定的参考价值。
镇场诗:
诚听如来语,顿舍世间名与利。愿做地藏徒,广演是经阎浮提。
愿尽吾所学,成就一良心博客。愿诸后来人,重现智慧清净体。
——————————————————————————————————————————
ex1:
code:
class Parent : def __init__(self) : #父类的构造函数 print("父类构造完毕") class Child1(Parent) : #child类继承于 parent类 def __init__(self) : print("子类1代构造函数") class Child2(Child1) : #child类继承于 parent类 def __init__(self) : print("子类2代构造函数") test=Child2(); #父类的构造函数不会出现,子类1代的构造函数也不会出现
result:
============= RESTART: C:\Users\Administrator\Desktop\myCode.py ============= 子类2代构造函数 >>>
ex2:
code:
class Parent : def __init__(self) : #父类的构造函数 print("父类构造完毕") class Child1(Parent) : #child类继承于 parent类 def __init__(self) : print("子类1代构造函数") class Child2(Child1) : #child类继承于 parent类 def __init__(self) : super().__init__() print("子类2代构造函数") test=Child2(); #构造函数有了super()才能追本溯源呀,但是。。。Child1没有super那么会出现
result:
============= RESTART: C:\Users\Administrator\Desktop\myCode.py ============= 子类1代构造函数 子类2代构造函数 >>>
ex3:
code:
class Parent : def __init__(self) : #父类的构造函数 print("父类构造完毕") class Child1(Parent) : #child类继承于 parent类 def __init__(self) : super().__init__() print("子类1代构造函数") class Child2(Child1) : #child类继承于 parent类 def __init__(self) : super().__init__() print("子类2代构造函数") test=Child2(); #每一级都有super才好呢
result:
============= RESTART: C:\Users\Administrator\Desktop\myCode.py ============= 父类构造完毕 子类1代构造函数 子类2代构造函数 >>>
——————————————————————————————————————————
博文的精髓,在技术部分,更在镇场一诗。Python版本3.5,系统 Windows7。
Python是优秀的语言,值得努力学习。我是跟着小甲鱼视频教程学习的,推荐。
我是一个新手,所以如果博文的内容有可以改进的地方,甚至有错误的地方,请留下评论,我一定努力改正,争取成就一个良心博客。
注:此文仅作为科研学习,如果我无意中侵犯了您的权益,请务必及时告知,我会做出改正。
以上是关于Python3基础 super层层调用父类的__init__方法 子类的__init__覆盖了父类的__init__的解决方法的主要内容,如果未能解决你的问题,请参考以下文章
Python3基础 super 子类调用父类的__init__