python子类调用父类函数,python调用父类构造函数
目录1。导言2。语法3。参数4。实施例1 5。示例2
1.介绍一下super()函数是用来调用父类(超类)的方法。
Super用来解决多重继承的问题。使用单继承时用类名直接调用父类方法没问题,但如果使用多重继承,就会涉及到找序(MRO)、重复调用(钻石继承)等各种问题。
MRO是一个类的方法解析序列表,实际上是继承父类方法时的序列表。
2.语法以下是super()方法的语法:
超级(类型[,对象或类型])
3.参数type-class object-or-type-class,一般是selfPython3.x和Python 2.x,一个区别是Python3可以直接用super()XXX代替。
超级(类,自我)。xxx:
4.示例1(Python3.x)
A类:
定义添加(自身,x):
y=x 1
打印(y)
B(A)类:
定义添加(自身,x):
超级()。添加(x)
b=B()
b .添加(2) # 3
5.示例2(Python2.x)
#!/usr/bin/python
# -*-编码:UTF-8 -*-
A类(object): # Python2.x记得继承object
定义添加(自身,x):
y=x 1
打印(y)
B(A)类:
定义添加(自身,x):
超级(B,自我)。添加(x)
b=B()
B.add(2) # 3返回值
没有。
例子
下面显示了使用超级函数的示例:
例子
#!/usr/bin/python
# -*-编码:UTF-8 -*-
类FooParent(对象):
def __init__(self):
self.parent=我是家长。
打印(“父项”)
定义栏(自身,消息):
打印(来自父“%消息”的%s)
类FooChild(FooParent):
def __init__(self):
# super(FooChild,self)首先找到FooChild的父类(即FooParent类),然后将FooChild类的对象转换为FooParent类的对象。
超级(FooChild,self)。__init__()
打印(“子代”)
定义栏(自身,消息):
超级(FooChild,self)。条形图(消息)
打印(“子栏功能”)
打印(自身父项)
if __name__==__main__ :
fooChild=FooChild()
Fochild.bar (Hello World )执行结果:
父母
儿童
来自父母的HelloWorld
子栏功能
我是家长。参考连接:
添加https://www.runoob.com/python/python-func-super.html链接描述
来自
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。