python super()函数的基本使用


Posted in Python onSeptember 10, 2020

super主要来调用父类方法来显示调用父类,在子类中,一般会定义与父类相同的属性(数据属性,方法),从而来实现子类特有的行为。也就是说,子类会继承父类的所有的属性和方法,子类也可以覆盖父类同名的属性和方法。

class Parent(object):
  Value = "Hi, Parent value"
 
  def fun(self):
    print("This is from Parent")
 
 
# 定义子类,继承父类
class Child(Parent):
  Value = "Hi, Child value"
 
  def ffun(self):
    print("This is from Child")
 
 
c = Child()
c.fun()
c.ffun()
print(Child.Value)
 
# 输出结果
# This is from Parent
# This is from Child
# Hi, Child value

但是,有时候可能需要在子类中访问父类的一些属性,可以通过父类名直接访问父类的属性,当调用父类的方法是,需要将”self”显示的传递进去的方式。

class Parent(object):
  Value = "Hi, Parent value"
 
  def fun(self):
    print("This is from Parent")
 
 
class Child(Parent):
  Value = "Hi, Child value"
 
  def fun(self):
    print("This is from Child")
    # 调用父类Parent的fun函数方法
    Parent.fun(self)
 
 
c = Child()
c.fun()
 
# 输出结果
# This is from Child
# This is from Parent
# 实例化子类Child的fun函数时,首先会打印上条的语句,再次调用父类的fun函数方法

这种方式有一个不好的地方就是,需要经父类名硬编码到子类中,为了解决这个问题,可以使用Python中的super关键字。

class Parent(object):
  Value = "Hi, Parent value"
 
  def fun(self):
    print("This is from Parent")
 
 
class Child(Parent):
  Value = "Hi, Child value"
 
  def fun(self):
    print("This is from Child")
    # Parent.fun(self)
    # 相当于用super的方法与上一调用父类的语句置换
    super(Child, self).fun()
 
 
c = Child()
c.fun()
 
# 输出结果
# This is from Child
# This is from Parent
# 实例化子类Child的fun函数时,首先会打印上条的语句,再次调用父类的fun函数方法

以上就是python super()函数的基本使用的详细内容,更多关于python super()函数的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
基于python生成器封装的协程类
Mar 20 Python
python 将字符串完成特定的向右移动方法
Jun 11 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 Python
Python守护进程实现过程详解
Feb 10 Python
Python中if有多个条件处理方法
Feb 26 Python
Python基于Tkinter编写crc校验工具
May 06 Python
Python实现一个简单的递归下降分析器
Aug 01 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
python 远程执行命令的详细代码
Feb 15 Python
Python如何实现机器人聊天
Sep 10 #Python
Python 必须了解的5种高级特征
Sep 10 #Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 #Python
利用python 读写csv文件
Sep 10 #Python
如何用Python 加密文件
Sep 10 #Python
Python 高效编程技巧分享
Sep 10 #Python
python操作redis数据库的三种方法
Sep 10 #Python
You might like
mysql数据库差异比较的PHP代码
2012/02/05 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
php面向对象程序设计入门教程
2019/06/22 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
Date对象格式化函数代码
2010/07/17 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
JavaScript中指定函数名称的相关方法
2015/06/04 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
Bootstrap面板学习使用
2017/02/09 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
jQuery实现全选、反选和不选功能的方法详解
2019/12/04 jQuery
js中火星坐标、百度坐标、WGS84坐标转换实现方法示例
2020/03/02 Javascript
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
个性大学生自我评价
2013/12/04 职场文书
内业资料员岗位职责
2014/01/04 职场文书
施工协议书范本
2014/04/22 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
小学生安全教育主题班会
2015/08/12 职场文书