第十一章、super()详解

一、引出super()来由

原始用法:

在python类的方法中,要调用父类的某个方法,通常是类.方法()

使用非绑定的类方法(用类名来引用的方法),并在参数列表引入待绑定的对象self,达到调用父类方法的目的。

缺点:

这样做的缺点是,当一个子类的父类发生变化时(如类B的父类由A变为C时),必须遍历整个类定义,把所有的通过非绑定的方法的类名全部替换过来

如果代码简单,这样的改动或许还可以接受。但如果代码量庞大,这样的修改可能是灾难性的。

解决方案:

于是,python加入了super关键字

class A(object):    # A must be new-style class
def __init__(self):
print "enter A"
print "leave A" class B(C): # A --> C
def __init__(self):
print "enter B"
super(B, self).__init__()
print "leave B"

第十一章、super()详解的更多相关文章

  1. Objective-C中 Self和 Super详解

    Objective-C中 Self和 Super详解 Objective-C 中Self 和 Super 详解本文要介绍的内容,在 Objective-C 中的类实现中经常看到这两个关键字 self  ...

  2. 第 13 章 StringTable详解

    目录 第 13 章 StringTable 1.String 的基本特性 1.1.String 概述 1.2.String 的基本特征 1.3.String 的底层结构 2.String 的内存分配 ...

  3. 第三章 DispatcherServlet详解

    3.1.DispatcherServlet作用 DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring Io ...

  4. 【转】apue《UNIX环境高级编程第三版》第一章答案详解

    原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此 ...

  5. ASP.NET Core微服务 on K8S学习笔记(第一章:详解基本对象及服务发现)

    课程链接:http://video.jessetalk.cn/course/explore 良心课程,大家一起来学习哈! 任务1:课程介绍 任务2:Labels and Selectors 所有资源对 ...

  6. 【Java入门提高篇】Day29 Java容器类详解(十一)LinkedHashSet详解

    当当当当当当当,本来打算出去浪来着,想想还是把这个先一起写完吧,毕竟这篇的主角跟我一样是一个超级偷懒的角色——LinkedHashSet,有多偷懒?看完你就知道了. 本篇将从以下几个方面对Linked ...

  7. 大数据入门第十一天——hive详解(一)入门与安装

    一.基本概念 1.什么是hive The Apache Hive ™ data warehouse software facilitates reading, writing, and managin ...

  8. Python中super详解

    转至:https://mozillazg.com/2016/12/python-super-is-not-as-simple-as-you-thought.html 说到 super, 大家可能觉得很 ...

  9. Objective-C 的 self 和 super 详解 (用简单程序说明问题)

    在 Objective-C 中的类实现中经常看到这两个关键字 "self" 和 "super",以以前 oop 语言的经验,拿 c++ 为例,self 相当于 ...

随机推荐

  1. [git]使用Idea创建一个git项目

    第一次使用git的方法,如建立的项目名叫:my-webapp   第一步:在远程gitlab上建立空白项目:my-webapp 第二步:在本地建立项目my-webapp,添加代码 第三步:创建一个本地 ...

  2. 执行scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb命令时一直报错:

    Can't locate Data/Dumper.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /u ...

  3. python3.7与pyspider的坑

    网络上安装pyspider的坑有很多,但都不如我今天的大,困扰了我几天,终于解决了 Traceback (most recent call last): File "/ffk_learn/s ...

  4. RxJS 6有哪些新变化?

    我们的前端工程由Angular4升级到Angular6,rxjs也要升级到rxjs6.  rxjs6的语法做了很大的改动,幸亏引入了rxjs-compact包,否则升级工作会无法按时完成. 按照官方的 ...

  5. 权限控制(delphi actionlist)

    权限控制(delphi TActionList方案)在软件开发中,为软件加入权限控制功能,使不同的用户有不同的使用权限,是非常重要的一项功能,由其在开发数据库方面的应用,这项功能更为重要.但是,要为一 ...

  6. linux定时脚本:删除linux/HDFS上过期文件

    一.定时删除linux上定时的文件 显示20分钟前的文件 -exec ls -l {} \; 删除20分钟前的文件 -exec rm {} \; 显示20天前的文件 -exec ls -l {} \; ...

  7. java创建和解析json对象

    最近工作遇到了 json 解析的相关需求,整理下 JSONObject 相关操作. 文中使用的例子都是基于阿里巴巴的产品 FastJSON ,涉及到的包有: import com.alibaba.fa ...

  8. Image组件的使用

    // 注意图片放置的目录问题 <Image source = {require('./img/logo.png')} style = {styles4.imageStyle}/> 注意要导 ...

  9. 【CodeForces - 682C】Alyona and the Tree(dfs)

    Alyona and the Tree Descriptions 小灵决定节食,于是去森林里摘了些苹果.在那里,她意外地发现了一棵神奇的有根树,它的根在节点 1 上,每个节点和每条边上都有一个数字. ...

  10. MariaDB知识点总结03--从主+多主集群

    一.从主架构 1.从主复制原理 从库生成两个线程,一个I/O线程,一个SQL线程: i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中:主库会生 ...