关闭

python 的super

166人阅读 评论(0) 收藏 举报
分类:

Python class 中我们常常看到super 的key word, super 一般是用在class 的__init__中显示都call 父类的__init__

比喻下面的类

class parent

    def  __init__(self,  a):

        self.value = a

    def getValue(self):

         return self.value


class child(parent):

     def __init__(self, a):

         super(son, self).__init__(a)

   

当然上面的的child 的__init__中也可以不用super 而是显示使用parent.__init__(self, a), 当然这样使用也是可以的, 如果

有child1, child2 都有继承parent , 现在有一个类child3 同时继承child1, child2 , 这个时候新建child3 的对象的时候就会call 

parent 的__init__两次,但是使用super call parent 的__init__就只会call 一次了。

0
0
查看评论

python中super用法研究

python语言与C++有相似的类继承,在类定义时,python中会自定义第一个self,类似C++中this指针,指向对象自身。 python简单的类举例: >>> class hello(object): ... def print_c(): ... ...
  • u011467044
  • u011467044
  • 2016-08-14 21:06
  • 6036

详解python的super()的作用和原理

Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this,比如:C#),用于传递对象本身,而在调用的时候则不 必显式传递,系统会自动传递。 今天我们介绍的主角是super(), 在类的继承里面super()非常常用, 它解决了子类调用父类方法的一些问题, 父类...
  • liwei825755184
  • liwei825755184
  • 2017-01-14 10:54
  • 1017

python的super详解(二)

转自http://gohom.win/2016/02/23/py-super/ 在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简单说, super函数是调用下一个父类(超类)并返回该父类实例的方法. 这里的下一个的概念参考后面的MRO表...
  • langb2014
  • langb2014
  • 2017-01-31 21:04
  • 5493

Python中super的用法

super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。总之前人留下的经验就是:保持一致性。要不全部用类名调用父类,要不就全部用 super,不要一半一半。 普通继承 『代码』 ...
  • crazyhacking
  • crazyhacking
  • 2014-05-21 17:50
  • 19898

Python中super()函数简介及用法分享

首先看一下super()函数的定义: super([type [,object-or-type]]) Return a **proxy object** that delegates method calls to a **parent or sibling** class of type. ...
  • zzsfqiuyigui
  • zzsfqiuyigui
  • 2017-03-12 22:58
  • 1065

Python 中的继承之Super用法

欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件...
  • fenglovehappy
  • fenglovehappy
  • 2015-08-17 19:54
  • 4871

深入思考python的super()

本文翻译自文章 《Python’s super() considered super!》,这篇文章是博主在王晓斌博客中,看到的博客Python面向对象_super()函数。
  • tab_space
  • tab_space
  • 2016-01-12 18:58
  • 2585

Python中super()方法的使用

如果在子类中也定义了构造器,既_init_()函数,那么基类的构造器该如何调用呢?方法一、明确指定 使用一个子类的实例去调用基类的构造器,在子类的构造器中明确的指明调用基类的构造器。class C(P): ... def __init__(self): ... ...
  • Four_Infinite
  • Four_Infinite
  • 2016-10-12 15:04
  • 2912

简介Python之super的用法及原理

本文在参考了多篇文献的基础上,简单总结了super()的用法以及原理。
  • nirendao
  • nirendao
  • 2015-10-02 21:21
  • 1899

python学习笔记6.4-类的多重继承(super()函数)

说到面向对象,就少不了研究面向对象的特点(继承,封装,多态)。Python中类的继承的关键是正确使用super()函数,而这恰好是我们理解最不好的地方。
  • jinxiaonian11
  • jinxiaonian11
  • 2016-12-18 14:24
  • 23861
    个人资料
    • 访问:7362次
    • 积分:332
    • 等级:
    • 排名:千里之外
    • 原创:25篇
    • 转载:9篇
    • 译文:0篇
    • 评论:0条
    文章分类
    友情链接
    study