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之编写类之四再论继承
Oct 11 Python
Python中装饰器的一个妙用
Feb 08 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
Python多线程爬虫简单示例
Mar 04 Python
Python callable()函数用法实例分析
Mar 17 Python
python list是否包含另一个list所有元素的实例
May 04 Python
Python 中pandas索引切片读取数据缺失数据处理问题
Oct 09 Python
Python.append()与Python.expand()用法详解
Dec 18 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
Python监听键盘和鼠标事件的示例代码
Nov 18 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 Python
Flask处理Web表单的实现方法
Jan 31 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实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
初学js 新节点的创建 删除 的步骤
2011/07/04 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
2016/05/12 Javascript
jQuery遍历DOM的父级元素、子级元素和同级元素的方法总结
2016/07/07 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
thinkjs 文件上传功能实例代码
2017/11/08 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
Python实现改变与矩形橡胶的线条的颜色代码示例
2018/01/05 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Django中自定义模型管理器(Manager)及方法
2019/09/23 Python
pycharm不能运行.py文件的解决方法
2020/02/12 Python
python3判断IP地址的方法
2021/03/04 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
技术负责人任命书
2014/06/05 职场文书
网络销售员岗位职责
2015/04/11 职场文书
2015年预算员工作总结
2015/05/14 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
高一军训感想
2015/08/07 职场文书
自考生自我评价
2019/06/21 职场文书