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使用datetime模块计算各种时间间隔的方法
Mar 24 Python
Python的Tornado框架实现图片上传及图片大小修改功能
Jun 30 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
浅谈Python实现Apriori算法介绍
Dec 20 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
python 读取摄像头数据并保存的实例
Aug 03 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
python感知机实现代码
Jan 18 Python
Python控制Firefox方法总结
Jun 03 Python
pygame实现打字游戏
Feb 19 Python
python已协程方式处理任务实现过程
Dec 27 Python
Python实现上下文管理器的方法
Aug 07 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入门
2006/10/09 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
让你的PHP7更快之Hugepage用法分析
2016/05/31 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
js arguments.callee的应用代码
2009/05/07 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
jquery和ajax的关系详细介绍
2013/11/29 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
jQuery学习笔记之基础中的基础
2015/01/19 Javascript
js实现拖拽效果(构造函数)
2015/12/14 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
JavaScript设计模式经典之命令模式
2016/02/24 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
Python的Tornado框架异步编程入门实例
2015/04/24 Python
详解Python中的__getitem__方法与slice对象的切片操作
2016/06/27 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
病人家属写给医院的感谢信
2015/01/23 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
导游词之湖北武当山
2019/09/23 职场文书
SONY AN-LP1 短波有源天线放大器
2021/04/22 无线电
react 路由Link配置详解
2021/11/11 Javascript