super用法

先知道干啥用的,那么就需要看下类的继承,继承有两种方式

继承1
class P:def m(self):print("P class")class C(P):def m(self):print("C class")# 这里是需要调用父类的m方法P.m(self)if __name__ == "__main__":c = C()c.m()
继承2
class P:def m(self):print("P class")class C(P):def m(self):print("C class")super().m() # 这里用super的好处就是更改父类时不用再改这里,直接改上面就行if __name__ == "__main__":c = C()c.m()
继承构造方法1

为什么要单独说构造方法,因为如果只继承类方法那么就是上例,但是要更改子类的构造方法就需要继承父类的构造方法

class P:def __init__(self):print("P class __init__")# def __init__(self, name):#   self.name = name  这里记录下:python没有重载,重载的目的是 1.参数类型 2.参数个数,python都不需要
class C(P):def __init__(self):super().__init__()  # 如果子类有构造方法,必须继承父类的构造方法print("C class __init__")if __name__ == "__main__":c = C()
继承构造方法2

构造方法中有参数传递

class P:def __init__(self, name):self.name = nameprint(f"P class __init__ {self.name}")class C1(P):def __init__(self, name):super().__init__(name)  # 如果子类有构造方法,必须继承父类的构造方法print("C class __init__")class C2(P):def __init__(self):self.name = "YaoMing"super().__init__(self.name)  # 如果子类有构造方法,必须继承父类的构造方法print("C class __init__")if __name__ == "__main__":# 第一种调用方式c1 = C1("YaoMing")# 第二种调用方式c2 = C2()
继承构造方法3

子类调用父类构造方法中的参数

class P:def __init__(self):self.name = "YaoMing"print(f"P class __init__ {self.name}")class C(P):def __init__(self):super().__init__()  # 如果子类有构造方法,必须继承父类的构造方法print("C class __init__")print(f"In C class parent class param: {self.name}")if __name__ == "__main__":c = C()print(c.name)
总结
  1. 继承就是基本上把父类拿过来了(不包括你改过的地方,如果没改基本一样)

python super相关推荐

  1. python super 变参数问题(五)

    这是Python多层继承的一个特例,祖父,父亲,儿子都有 draw 方法,那么经过多次继承后, 如何对于不同层次的方法传递参数呢,可以看这篇文章python super 理解(四) 如何对于不同层次的 ...

  2. python super()函数(用来调用父类方法)

    如图,super()用于调用当前类Canvas的父类QWidget的size()方法: 参考文章1:Python super 详解 参考文章2:Python super() 函数

  3. pythonsuper函数_怎么使用python super函数调用父类

    怎么使用python super函数调用父类 发布时间:2020-11-19 09:19:47 来源:亿速云 阅读:93 作者:小新 小编给大家分享一下怎么使用python super函数调用父类,希 ...

  4. Python super 函数 - Python零基础入门教程

    目录 一.Python super 函数简介 二.Python super 函数语法 三.Python super 函数使用 1.案例一 2.案例二: 四.猜你喜欢 零基础 Python 学习路线推荐 ...

  5. python super 多重继承_解决python super()调用多重继承函数的问题

    当类间继承关系很简单时,super()的使用很简单. class A(object): def __init__(self): print('a') class B(A): def __init__( ...

  6. 设计一个矩形类rectangle_使用Python super()为您的类增强

    虽然Python不仅仅是一种面向对象的语言,但它足够灵活,功能强大,足以让您使用面向对象的范例构建应用程序.Python实现这一目标的方法之一是支持继承,它与之相关super(). 在本教程中,您将了 ...

  7. Python super钻石继承

    1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object):def __init__ ...

  8. [转载] python super详解

    参考链接: Python super() 说到 super, 大家可能觉得很简单呀,不就是用来调用父类方法的嘛.如果真的这么简单的话也就不会有这篇文章了,且听我细细道来.? 约定 在开始之前我们来约定 ...

  9. python super()方法的作用_详解python的super()的作用和原理

    Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递.uz0免费资源网 今天我们介绍的主角是s ...

  10. python super

    原文地址:http://www.cnblogs.com/lovemo1314/archive/2011/05/03/2035005.html python super() 一.问题的发现与提出 在Py ...

最新文章

  1. Python 字典创建、更新、按键值排序、取最大键值对等操作
  2. 用java设计一个二叉树类的结构,二叉树的基本结构以及java实现
  3. c语言学生考勤系统课设报告,C语言课程设计总结报告学生考勤系统设计
  4. 深入理解InnoDB(6)—独立表空间
  5. [转]给控件做数字签名
  6. linux将汇编转为机器码,汇编语言 高级语言 机器语言 本地代码
  7. python循环一百次_python循环
  8. C#LeetCode刷题之#475-供暖器(Heaters)
  9. springmvc + excel代
  10. 服务器怎么跑python_在Linux服务器上跑Python Unet程序
  11. Spring的 @ExceptionHandler注解无效问题
  12. 最大似然参数估计的求解
  13. C/C++语言IDE_开发工具
  14. java中怎么审阅图片_java – Crucible REST API:无法添加审阅者
  15. Suse linux 命令行
  16. 首先下载安装data.table包_首次揭秘“超级签”与企业包行业内幕
  17. 【Python扩展阅读EasyGui 学习文档【超详细中文版】】
  18. 视频转文字怎么转?这3个方法可以将视频转为文字
  19. Groovy快速入门指南
  20. 中国风水墨古风年度总结PPT模板

热门文章

  1. Python Json存储与读取
  2. 强化学习note1——马尔科夫奖励过程MRP和马尔科夫决策过程MDP各个函数的定义与区别
  3. 万字长文搞定C语言指针
  4. 计算机硬件结构中负责识别,计算机硬件基本结构树状图
  5. stm32搭建mqtt_STM32+ESP8266+AIR202基本控制篇-102-服务器基本搭建-安装MQTT软件(.Windows系统)...
  6. 热敏电阻如何查表计算温度_如何为温度传感器选择正确的热敏电阻
  7. python顺序表数组_数据结构 | 顺序表
  8. CAN 总线 之一 总线拓扑、物理电平、发展史 详解
  9. ESP32-S3与ESP32-S2相比,有什么不同呢?
  10. python计算图解_图解NumPy,看这一篇就够了!