python super用法及原理详解


Posted in Python onJanuary 20, 2020

这篇文章主要介绍了python super用法及原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

概念

super作为python的内建函数。主要作用如下:

  • 允许我们避免使用基类
  • 跟随多重继承来使用

实例

在单个继承的场景下,一般使用super来调用基类来实现:
下面是一个例子:

class Mammal(object):
 def __init__(self, mammalName):
  print(mammalName, 'is a warm-blooded animal.')
  
class Dog(Mammal):
 def __init__(self):
  print('Dog has four legs.')
  super().__init__('Dog')
  
d1 = Dog()

输出结果:

➜ super git:(master) ✗ py super_script.py

Dog has four legs.

Dog is a warm-blooded animal.

super在多重继承里面的使用:

下面是一个例子:

class Animal:
 def __init__(self, animalName):
  print(animalName, 'is an animal.');
class Mammal(Animal):
 def __init__(self, mammalName):
  print(mammalName, 'is a warm-blooded animal.')
  super().__init__(mammalName)

class NonWingedMammal(Mammal):
 def __init__(self, NonWingedMammalName):
  print(NonWingedMammalName, "can't fly.")
  super().__init__(NonWingedMammalName)
class NonMarineMammal(Mammal):
 def __init__(self, NonMarineMammalName):
  print(NonMarineMammalName, "can't swim.")
  super().__init__(NonMarineMammalName)
class Dog(NonMarineMammal, NonWingedMammal):
 def __init__(self):
  print('Dog has 4 legs.');
  super().__init__('Dog')

d = Dog()
print('')
bat = NonMarineMammal('Bat')

输出结果:

➜ super git:(master) ✗ py super_muli.py
Dog has 4 legs.
Dog can't swim.
Dog can't fly.
Dog is a warm-blooded animal.
Dog is an animal.

Bat can't swim.
Bat is a warm-blooded animal.
Bat is an animal.

参考文档

https://www.programiz.com/python-programming/methods/built-in/super

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之元组操作使用详解
Mar 25 Python
小小聊天室Python代码实现
Aug 17 Python
Ubuntu安装Jupyter Notebook教程
Oct 18 Python
在Python中实现shuffle给列表洗牌
Nov 08 Python
Django REST framework 视图和路由详解
Jul 19 Python
keras之权重初始化方式
May 21 Python
python如何求100以内的素数
May 27 Python
Python自动化操作实现图例绘制
Jul 09 Python
Python下载的11种姿势(小结)
Nov 18 Python
Python用户自定义异常的实现
Dec 25 Python
Python干货实战之八音符酱小游戏全过程详解
Oct 24 Python
Python list列表删除元素的4种方法
Nov 01 Python
tensorflow 变长序列存储实例
Jan 20 #Python
在tensorflow中实现去除不足一个batch的数据
Jan 20 #Python
Tensorflow实现在训练好的模型上进行测试
Jan 20 #Python
Python线程条件变量Condition原理解析
Jan 20 #Python
tensorflow tf.train.batch之数据批量读取方式
Jan 20 #Python
Python list运算操作代码实例解析
Jan 20 #Python
Python模块future用法原理详解
Jan 20 #Python
You might like
php导入导出excel实例
2013/10/25 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
2014/06/23 PHP
php的dl函数用法实例
2014/11/06 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
Node.js的基本知识简单汇总
2016/09/19 Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
2016/10/10 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
bootstrap精简教程_动力节点Java学院整理
2017/07/14 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
2017/05/25 Python
树莓派+摄像头实现对移动物体的检测
2019/06/22 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
python的Jenkins接口调用方式
2020/05/12 Python
详解python的变量缓存机制
2021/01/24 Python
谷歌浏览器小字体处理方案即12px以下字体
2013/12/17 HTML / CSS
路易威登和香奈儿手袋:LuxeDH
2017/01/12 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
纽约市的奢华内衣目的地:Anya Lust
2019/08/02 全球购物
Dyson戴森波兰官网:Dyson.pl
2019/08/05 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
中餐厅经理岗位职责
2014/04/11 职场文书
大学生求职信例文
2014/06/29 职场文书
幼儿园秋季开学寄语
2014/08/02 职场文书
十八大标语口号
2014/10/09 职场文书
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript