博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
super()方法
阅读量:6201 次
发布时间:2019-06-21

本文共 1022 字,大约阅读时间需要 3 分钟。

super()是一个调用父类的方法.

super()用来解决多继承问题,直接用类名调用父类的方法在单继承中是没有问题的,但是如果使用多继承会涉及到查找顺序(MRO)、重复调用等种种问题。

python2.x实例

class A(object):    passclass B(A):    def add(self, x):        super(B, self).add(x)

python3.x实例

class A:    passclass B(A):    def add(self, x):        super().add(x)

实例

class FooParent(object):    def __init__(self):        self.parent = 'I\'m the parent.'        print ('Parent')        def bar(self,message):        print ("%s from Parent" % message) class FooChild(FooParent):    def __init__(self):        # super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类B的对象 FooChild 转换为类 FooParent 的对象        super(FooChild,self).__init__()            print ('Child')            def bar(self,message):        super(FooChild, self).bar(message)        print ('Child bar fuction')        print (self.parent) if __name__ == '__main__':    fooChild = FooChild()    fooChild.bar('HelloWorld')

执行结果:

ParentChildHelloWorld from ParentChild bar fuctionI'm the parent.

 

转载于:https://www.cnblogs.com/aaronthon/p/9700365.html

你可能感兴趣的文章
北大教授邱泽奇:农村电商,为什么是菏泽?
查看>>
黄仁勋打响CES第一枪:全球最强芯DRIVE Xavier武装自动驾驶
查看>>
Tengine TLSv1.3最佳实践
查看>>
利用redis缓存对 list集合中的数据 进行分页操作
查看>>
云效(原RDC)如何构建一个基于Maven的Java项目
查看>>
RabbitMQ消息反序列化失败问题回顾
查看>>
Oracle 中实现查找树形结构节点功能
查看>>
aliyun 搭建redis集群
查看>>
java算法-二维极点算法
查看>>
总结-HttpClient-RetryHandler重试
查看>>
Java回调机制如何理解?
查看>>
mybatis mapper里面>= ,<=转义
查看>>
Android实时监听网络状态
查看>>
9.2 grep(中)
查看>>
11.32 php扩展模块装安装
查看>>
Java内存分析
查看>>
来自Google资深工程师的API设计最佳实践
查看>>
为什么区块链世界既需要计算机科学家也需要经济学家?
查看>>
微服务config-server配置环境切换改造
查看>>
Step by Step 真正从零开始,TensorFlow详细安装入门图文教程!帮你完成那个最难的从0到1...
查看>>