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 相关文章推荐
采用Psyco实现python执行速度提高到与编译语言一样的水平
Oct 11 Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 Python
python pygame模块编写飞机大战
Nov 20 Python
对Python3 序列解包详解
Feb 16 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
Django框架登录加上验证码校验实现验证功能示例
May 23 Python
在Django中实现添加user到group并查看
Nov 18 Python
python 比较2张图片的相似度的方法示例
Dec 18 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
Dec 19 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
 Python 中 logging 模块使用详情
Mar 03 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
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
jquery关于图形报表的运用实现代码
2011/01/06 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
使用JavaScript 编写简单计算器
2014/11/24 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
JavaScript sort数组排序方法和自我实现排序方法小结
2016/06/06 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
vue.js获取数据库数据实例代码
2017/05/26 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
2017/07/12 jQuery
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
Vue3.0 响应式系统源码逐行分析讲解
2019/10/14 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
[53:15]Newbee vs Pain 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python的常用模块之collections模块详解
2018/12/06 Python
python处理RSTP视频流过程解析
2020/01/11 Python
泰国综合购物网站:Lazada泰国
2018/04/09 全球购物
Servlet如何得到服务器的信息
2015/12/22 面试题
二年级体育教学反思
2014/01/15 职场文书
汇源肾宝广告词
2014/03/20 职场文书
社区端午节活动总结
2015/02/11 职场文书
2015年世界无烟日演讲稿
2015/03/18 职场文书
cf战队宣传语
2015/07/13 职场文书
laravel ajax curd 搜索登录判断功能的实现
2021/04/17 PHP
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang