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 相关文章推荐
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
仅利用30行Python代码来展示X算法
Apr 01 Python
在Python中关于中文编码问题的处理建议
Apr 08 Python
python实现逻辑回归的方法示例
May 02 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
Django中针对基于类的视图添加csrf_exempt实例代码
Feb 11 Python
pytorch在fintune时将sequential中的层输出方法,以vgg为例
Aug 20 Python
Python内建序列通用操作6种实现方法
Mar 26 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
Python Numpy之linspace用法说明
Apr 17 Python
Pytorch数据读取之Dataset和DataLoader知识总结
May 23 Python
pytorch Dropout过拟合的操作
May 27 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
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
PHP中使用GD库创建圆形饼图的例子
2014/11/19 PHP
php操作(删除,提取,增加)zip文件方法详解
2015/03/12 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
nodejs教程之入门
2014/11/21 NodeJs
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
javascript实现一个简单的弹出窗
2016/02/22 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
Node.js调用fs.renameSync报错(Error: EXDEV, cross-device link not permitted)
2017/12/27 Javascript
React diff算法的实现示例
2018/04/20 Javascript
vue完成项目后,打包成静态文件的方法
2018/09/03 Javascript
Vue引用Swiper4插件无法重写分页器样式的解决方法
2018/09/27 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
使用typescript快速开发一个cli的实现示例
2020/12/09 Javascript
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
Python iter()函数用法实例分析
2018/03/17 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
家具厂厂长岗位职责
2014/01/01 职场文书
2014年学校法制宣传日活动总结
2014/11/01 职场文书
求职信格式范文
2015/03/19 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
Python基础之变量的相关知识总结
2021/06/23 Python