码迷,mamicode.com
首页 > 其他好文 > 详细

第十一章、super()详解

时间:2019-08-27 23:27:59      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:lis   修改   一个   obj   strong   目的   遍历   参数   ref   

第十一章、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()详解

标签:lis   修改   一个   obj   strong   目的   遍历   参数   ref   

原文地址:https://www.cnblogs.com/demiao/p/11421044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!