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中MySQLdb和torndb模块对MySQL的断连问题处理
Nov 09 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
Python编程之黑板上排列组合,你舍得解开吗
Oct 30 Python
python的numpy模块安装不成功简单解决方法总结
Dec 23 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
python3实现windows下同名进程监控
Jun 21 Python
python实现泊松图像融合
Jul 26 Python
PyQtGraph在pyqt中的应用及安装过程
Aug 04 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
如何基于线程池提升request模块效率
Apr 18 Python
django和flask哪个值得研究学习
Jul 31 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 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
简单采集了yahoo的一些数据
2007/02/14 PHP
php目录遍历函数opendir用法实例
2014/11/20 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
js常用函数 不错
2006/09/08 Javascript
js实现鼠标经过表格行变色的方法
2015/05/12 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
深究AngularJS如何获取input的焦点(自定义指令)
2017/06/12 Javascript
JS实现unicode和UTF-8之间的互相转换互转
2017/07/05 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
Python Tkinter GUI编程入门介绍
2015/03/10 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
Python匿名函数及应用示例
2019/04/09 Python
详解Python3 pickle模块用法
2019/09/16 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
python 实现单例模式的5种方法
2020/09/23 Python
css3中flex布局宽度不生效的解决
2020/12/09 HTML / CSS
台湾饭店和机票预订网站:Expedia台湾
2016/08/05 全球购物
英国最大的海报商店:GB Posters
2018/03/20 全球购物
巴西补充剂和维生素购物网站:Natue
2019/06/17 全球购物
.NET程序员的几道面试题
2012/06/01 面试题
什么叫做SQL注入,如何防止
2016/10/04 面试题
软件工程师岗位职责
2013/11/16 职场文书
哈理工毕业生的求职信
2013/12/22 职场文书
咖啡蛋糕店创业计划书
2014/01/28 职场文书
法人授权委托书样本
2014/09/19 职场文书
奖金申请报告模板
2015/05/15 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
Python pyecharts绘制条形图详解
2022/04/02 Python
Android中的Launch Mode详情
2022/06/05 Java/Android