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 中文乱码问题深入分析
Mar 13 Python
Python爬虫爬取美剧网站的实现代码
Sep 03 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
win10 64bit下python NLTK安装教程
Sep 19 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
简单了解python 生成器 列表推导式 生成器表达式
Aug 22 Python
Python面向对象封装操作案例详解 II
Jan 02 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
Python模块/包/库安装的六种方法及区别
Feb 24 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
python3.5的包存放的具体路径
Aug 16 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
PHP实现根据设备类型自动跳转相应页面的方法
2014/07/24 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
2016/05/17 PHP
php抛出异常与捕捉特定类型的异常详解
2016/10/26 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
php5.3/5.4/5.5/5.6/7常见新增特性汇总整理
2020/02/27 PHP
Prototype Date对象 学习
2009/07/12 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
用js来获取上传的文件名纯粹是为了美化而用
2013/10/23 Javascript
通过js来制作复选框的全选和不选效果
2014/05/22 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
javascript 判断页面访问方式电脑或者移动端
2016/09/19 Javascript
JS禁止查看网页源代码的实现方法
2016/10/12 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
Vue实现双向数据绑定
2017/05/03 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
AngularJs返回前一页面时刷新一次前面页面的方法
2018/10/09 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
小小聊天室Python代码实现
2016/08/17 Python
pandas.DataFrame 根据条件新建列并赋值的方法
2018/04/08 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
韩国著名的在线综合购物网站:Akmall
2016/08/07 全球购物
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/01/13 面试题
创业计划书之花店
2019/09/20 职场文书