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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。