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字符串连接方法分析
Apr 12 Python
详解python3百度指数抓取实例
Dec 12 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
Feb 01 Python
python素数筛选法浅析
Mar 19 Python
Python的bit_length函数来二进制的位数方法
Aug 27 Python
Python中filter与lambda的结合使用详解
Dec 24 Python
Python换行与不换行的输出实例
Feb 19 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
Jun 05 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 Python
Pygame Rect区域位置的使用(图文)
Nov 17 Python
python3中apply函数和lambda函数的使用详解
Feb 28 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 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
2010/03/23 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
一些易混淆且不常用的属性,希望有用
2007/01/29 Javascript
JavaScript Undefined,Null类型和NaN值区别
2008/10/22 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
充分发挥Node.js程序性能的一些方法介绍
2015/06/23 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
浅析node Async异步处理模块用例分析及常用方法介绍
2017/11/17 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
JS实现电商商品展示放大镜特效
2020/01/07 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
[42:34]VP vs VG 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python 多线程应用介绍
2012/12/19 Python
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
使用Python的turtle模块画国旗
2019/09/24 Python
使用Bazel编译TensorBoard教程
2020/02/15 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
幼师专业毕业生自荐信
2013/09/29 职场文书
总经理助理的八要求
2013/11/12 职场文书
财务会计专业推荐信
2013/11/30 职场文书
教师申诉制度
2014/01/29 职场文书
政协工作总结2015
2015/05/20 职场文书
校园广播站开场白
2015/06/01 职场文书
寒假生活随笔
2015/08/15 职场文书
2016公司中秋节寄语
2015/12/07 职场文书