super().__init__() 来自于哪个PEP

super() 的简化用法(即不带参数的 super())是在 Python 3 中引入的。这个改进是由 PEP 3135 规范化的。

PEP 3135: New Super

PEP 3135 标题为 “New Super”。它介绍了一种新的方式来调用超类的方法,即不再需要显式地传递当前类和实例,只需简单地使用 super()

在 Python 2 中,你需要这样写:

class MyClass(BaseClass):
    def __init__(self, arg):
        super(MyClass, self).__init__(arg)

而在 Python 3 中,通过 PEP 3135 的改进,你可以这样写:

class MyClass(BaseClass):
    def __init__(self, arg):
        super().__init__(arg)

主要改进点:

  1. 更简洁:不需要显式地传递当前类和实例。
  2. 更易读:简化代码,使其更易于阅读和维护。

具体内容:

PEP 3135 的具体说明:

  • 它提出了一种更直观的方式来调用父类的方法,减少了书写和维护的复杂性。
  • 这个改进仅适用于 Python 3,Python 2 仍然需要使用老式的 super(MyClass, self).__init__() 形式。

代码示例对比:

Python 2 中的用法

class Parent(object):
    def __init__(self):
        print("Parent init")

class Child(Parent):
    def __init__(self):
        super(Child, self).__init__()
        print("Child init")

child = Child()

Python 3 中的用法

class Parent:
    def __init__(self):
        print("Parent init")

class Child(Parent):
    def __init__(self):
        super().__init__()
        print("Child init")

child = Child()

super().__init__() 的简化用法来自于 PEP 3135。这个改进使得调用超类的初始化方法变得更加简洁和直观,是 Python 3 中的一项重要改进。

代码对比

如果你再看到这段代码应该能看懂super()了吧
第一段代码:

def __init__(self, input_contract=None):
    super(ArticleResource, self).__init__()
    field_list = Article._meta.fields
    self.verbose_name_dict = {}
    for i in field_list:
        self.verbose_name_dict[i.name] = i.verbose_name

第二段代码:

def __init__(self, input_contract=None):
    super().__init__()
    field_list = Article._meta.fields
    self.verbose_name_dict = {}
    for i in field_list:
        self.verbose_name_dict[i.name] = i.verbose_name

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/663528.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

格雷希尔GripSeal:G60P系列快速连接器,解决外螺纹无损伤连接的密封方案

在家电、卫浴行业的生产中,外螺纹连接往往面临着严苛的工作环境和复杂的使用场景;比如洗衣机、热水器、乃至龙头阀的一些塑料螺纹、铝合金螺纹和铜管螺纹,它们都需要一种既安全又无损的连接方式。 传统的连接方式会对这些螺纹造成刮伤,影响了…

【MyBatis】MyBatis操作数据库(一)

目录 MyBatis的基础定义MyBatis配置相关文件一、注解操作数据库1.1 Insert(插入注解)1.2 Delete(删除注解)1.3 Update(修改注解)1.4 Select(重点:查询注解)注解解决查询不匹配问题拓展:Param(重命名注解)和OPtions(自增注解) 二、 XML操作数据库2.1 xml实…

HTML语义化标签

<header> 主要用于网页整体顶部&#xff0c;<article>头部&#xff0c;<section>头部 <nav> 导航&#xff0c;一般有主要导航&#xff0c;路径导航&#xff0c;章节导航&#xff0c;内容目录导航 <main> 网页主要区域&#xff0c;一般一个网页…

2024 RCTF WebMisc部分 WP

Misc gogogo 考点:内存取证 得到 gogogo.raw 内存取证的题用volatility和AXIOM结合分析 AXIOM 分析存在云服务 但是百度网盘要密码 https://pan.baidu.com/share/init?surlZllFd8IK-oHvTCYl61_7Kw 发现访问过sqlite数据库 可以尝试提取数据库文件出来 结合 volatility 第…

Spring Security3.0版本

前言&#xff1a; 核心&#xff1a; A >> &#xff1f; >> B &#xff1f;代表判断层&#xff0c;由Security实现 这是之前的版本浓缩&#xff0c;现在3.0版本添加了更匹配的内容描写&#xff0c;匹配了mvc模式 非mvc模式 核心&#xff1a;client&#x…

【仿真成品设计】基于STM32的直流电机控制器Proteus仿真

基于STM32的直流电机控制器Proteus仿真 所需器件&#xff1a; Proteus版本&#xff1a;8.15 整体功能&#xff1a; 直流无刷电机控制器是基于ST公司的STM32F103芯片的基础上使用标准库进行开发设计的。选用L298芯片来控制直流电机&#xff1b;采用使用0.96寸OLED屏幕做直流…

振弦采集仪在岩土工程固结沉降监测中的应用研究

振弦采集仪在岩土工程固结沉降监测中的应用研究 岩土工程固结沉降是指土体在受到外力作用下&#xff0c;由于土体颗粒之间的重排结构&#xff0c;导致土体体积缩小和沉降的过程。固结沉降的监测对于岩土工程的设计和施工具有重要的意义&#xff0c;而振弦采集仪作为一种先进的…

主线程等待所有线程结束之后再执行

如何让主线程等待所有线程结束之后再执行 1、Future的机制&#xff0c;使用Future.get()阻塞等待结果&#xff08;Future&#xff0c;FutureTask&#xff09; 2、CountDownLatch同步工具类&#xff0c;此类的作用就是一个线程等待所有线程结束之后再执行 3、CompletableFuture …

使用Python爬取华为市场游戏类APP应用

文章目录 1. 写在前面2. 接口分析3. 爬虫开发4. 下载链接获取 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守…

统计信号处理-匹配滤波器实现与验证(matlab仿真)

什么是匹配滤波器 匹配滤波器是一种信号处理技术&#xff0c;它用于从噪声中提取信号&#xff0c;特别是在信号与噪声比率较低的情况下。匹配滤波器之所以存在&#xff0c;是因为它在信号检测和估计方面具有几个关键的优势&#xff1a; 最大化信噪比&#xff1a;匹配滤波器设计…

JVS低代码表单消息提示:从站内信到钉钉全覆盖,适应各类应用场景

表单消息提示配置 表单消息发送方式分为站内信、公众号、企业微信、钉钉和邮件。 站内信发送是指系统内部之间发送消息&#xff0c;用户登录系统后以弹窗形式在桌面右下角提示。 公众号发送消息则是用户在系统个人中心绑定微信后通过公众号接收消息。 企业微信、钉钉和邮件…

【Docker】宝塔创建Docker容器配置nginx

前言 本篇是我入门docker的第一篇&#xff0c;由于docker具有很好的移植性&#xff0c;易于安装&#xff0c;开箱即用&#xff1b;签约的公司项目开发需要我进行学习&#xff0c;否则money减半&#xff0c;5555~ 百度找了一圈&#xff0c;只有关于docker怎么装宝塔服务器的却没…

运算符重载(下)

目录 前置和后置重载前置的实现Date& Date::operator()代码 后置的实现Date Date::operator(int )代码 前置--和后置--重载前置--的实现Date& Date::operator--( )代码 后置--的实现Date Date::operator--(int )代码 流插入运算符重载流插入运算符重载的实现流提取运算…

1、css3 动态button展示学习

效果图&#xff1a; 1、首先创建html代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title…

LNMP分布式搭建

一、准备三台主机 192.168.100.11 mysql 192.168.100.12 nginx 192.168.100.13 php 二、关闭防火墙及安全策略 systemctl stop firewalld setenforce 0 三、安装nginx&#xff08;192.168.100.11&#xff09; 1、添加nginx源 vim /etc/yum.repos.d/ng…

数据库系统概念(第七周 第一堂)(E-R模型)

目录 前言 基本概念 观点与模型 作用与要求 E-R模型元素 实体&#xff08;entity&#xff09; 实体集&#xff08;entity set&#xff09; 属性&#xff08;attribute&#xff09; 域&#xff08;domain&#xff09; 码 &#xff08;key&#xff09; 联系 &#x…

allure测试报告用例数和 pytest执行用例数不相同问题

我出现的奇怪问题&#xff1a; pytest执行了9条用例&#xff0c;但是测试报告确只显示3条用例 我将其中的一个代码删除后&#xff0c;发现allure测试报告又正常了 我觉得很奇怪这个代码只是删除了二维数组的第一列&#xff0c;我检查了半天都找不到问题&#xff0c;只有降低版本…

优选算法一:双指针算法与练习(移动0)

目录 双指针算法讲解 移动零 双指针算法讲解 常见的双指针有两种形式&#xff0c;一种是对撞指针&#xff0c;一种是快慢指针。 对撞指针&#xff1a;一般用于顺序结构中&#xff0c;也称左右指针。 对撞指针从两端向中间移动。一个指针从最左端开始&#xff0c;另一个从最…

云计算与 openstack

文章目录 一、 虚拟化二、云计算2.1 IT系统架构的发展2.2 云计算2.3 云计算的服务类型 三、Openstack3.1 OpenStack核心组件 一、 虚拟化 虚拟化使得在一台物理的服务器上可以跑多台虚拟机&#xff0c;虚拟机共享物理机的 CPU、内存、IO 硬件资源&#xff0c;但逻辑上虚拟机之…

Python魔法之旅-魔法方法(04)

目录 一、概述 1、定义 2、作用 二、主要应用场景 1、构造和析构 2、操作符重载 3、字符串和表示 4、容器管理 5、可调用对象 6、上下文管理 7、属性访问和描述符 8、迭代器和生成器 9、数值类型 10、复制和序列化 11、自定义元类行为 12、自定义类行为 13、类…