python super用法及原理详解
这篇文章主要介绍了pythonsuper用法及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
概念
super作为python的内建函数。主要作用如下:
- 允许我们避免使用基类
- 跟随多重继承来使用
实例
在单个继承的场景下,一般使用super来调用基类来实现:
下面是一个例子:
classMammal(object):
def__init__(self,mammalName):
print(mammalName,'isawarm-bloodedanimal.')
classDog(Mammal):
def__init__(self):
print('Doghasfourlegs.')
super().__init__('Dog')
d1=Dog()
输出结果:
➜supergit:(master)✗pysuper_script.py
Doghasfourlegs.
Dogisawarm-bloodedanimal.
super在多重继承里面的使用:
下面是一个例子:
classAnimal:
def__init__(self,animalName):
print(animalName,'isananimal.');
classMammal(Animal):
def__init__(self,mammalName):
print(mammalName,'isawarm-bloodedanimal.')
super().__init__(mammalName)
classNonWingedMammal(Mammal):
def__init__(self,NonWingedMammalName):
print(NonWingedMammalName,"can'tfly.")
super().__init__(NonWingedMammalName)
classNonMarineMammal(Mammal):
def__init__(self,NonMarineMammalName):
print(NonMarineMammalName,"can'tswim.")
super().__init__(NonMarineMammalName)
classDog(NonMarineMammal,NonWingedMammal):
def__init__(self):
print('Doghas4legs.');
super().__init__('Dog')
d=Dog()
print('')
bat=NonMarineMammal('Bat')
输出结果:
➜supergit:(master)✗pysuper_muli.py Doghas4legs. Dogcan'tswim. Dogcan'tfly. Dogisawarm-bloodedanimal. Dogisananimal. Batcan'tswim. Batisawarm-bloodedanimal. Batisananimal.
参考文档
https://www.programiz.com/python-programming/methods/built-in/super
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。