即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

Python学习和进阶学习和进阶笔记 — 学会super用法

编程语言 u012965373 15℃ 0评论

其实很多人对于Python中的super理解并没有很明白,其中主要是对于使用。这里简单的讲解一下。

当存在继承关系的时候,有时候需要在子类中调用父类的方法,此时最简单的方法是把对象调用转换成类调用,需要注意的是这时self参数需要显式传递





例如:




>>> class FooParent:
def bar(self, message):
print(message)

>>> class FooChild(FooParent):
def bar(self, message):
FooParent.bar(self, message)

>>> FooChild().bar("Hello, World.")
Hello, World.


这里懂了的话,继续:

这样做有一些缺点,比如说如果修改了父类名称,那么在子类中会涉及多处修改,另外,Python是允许多继承的语言,如上所示的方法在多继承时就需要重复写多次,显得累赘。为了解决这些问题,Python引入了super()机制,例子代码如下:







class FooParent(object):
    def bar(self, message):
        print message

class FooChild(FooParent):
    def bar(self, message):
        super(FooChild, self).bar(message)

FooChild().bar("Hello, World")





最后总结来说,super的引用是为了减少代码的的修改导致的错误,以及大量的重复修改的工作。


转载请注明:CodingBlog » Python学习和进阶学习和进阶笔记 — 学会super用法

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情