python super()笔记

一、问题的发现与提出

在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1:

代码段1:

View Code

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

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

代码段2:

class B(C):    # A --> C
  def __init__(self):
   print "enter B"
   C.__init__(self) # A --> C
   print "leave B"

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

因此,自Python 2.2开始,Python添加了一个关键字super,来解决这个问题。下面是Python 2.3的官方文档说明:

 super(type[, object-or-type])

  Return the superclass of 

相关推荐

  1. 笔记

    2024-01-25 23:42:01       24 阅读
  2. 拼音笔记笔记

    2024-01-25 23:42:01       52 阅读
  3. 笔记】HDFS基础笔记

    2024-01-25 23:42:01       44 阅读
  4. 笔记】Hbase基础笔记

    2024-01-25 23:42:01       45 阅读
  5. mySql笔记

    2024-01-25 23:42:01       55 阅读
  6. less 笔记

    2024-01-25 23:42:01       59 阅读
  7. React笔记

    2024-01-25 23:42:01       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 23:42:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 23:42:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 23:42:01       87 阅读
  4. Python语言-面向对象

    2024-01-25 23:42:01       96 阅读

热门阅读

  1. ElasticSearch分词器介绍

    2024-01-25 23:42:01       60 阅读
  2. qml中QtObject类型的使用

    2024-01-25 23:42:01       54 阅读
  3. 关于C#中的Select与SelectMany方法

    2024-01-25 23:42:01       61 阅读
  4. C# DLL嵌套调用时修改生效

    2024-01-25 23:42:01       53 阅读
  5. 地址解析协议

    2024-01-25 23:42:01       63 阅读
  6. MongoDB聚合:$currentOp

    2024-01-25 23:42:01       54 阅读
  7. C语言|判断和循环相关题目

    2024-01-25 23:42:01       61 阅读
  8. 一次Rust重写基础软件的实践(二)

    2024-01-25 23:42:01       48 阅读
  9. named_struct

    2024-01-25 23:42:01       63 阅读
  10. 五、C#与数据库交互(数据存储过程与触发器)

    2024-01-25 23:42:01       60 阅读
  11. android gradle 使用总结

    2024-01-25 23:42:01       60 阅读