广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Python技术 > 正文

Python super() 函数_惠州计算机Python培训学校

作者:黄君发布时间:2021-01-29分类:Python技术浏览:1222


导读:super() 函数是用于调用父类(超类)的一个方法。super() 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。

描述

super() 函数是用于调用父类(超类)的一个方法。

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

MRO 就是类的方法解析顺序表, 其实也就是继承父类方法时的顺序表。


语法

以下是 super() 方法的语法:

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


参数

type -- 类。

object-or-type -- 类,一般是 self

Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx :


Python3.x 实例:

class A:

     def add(self, x):

         y = x+1

         print(y)

class B(A):

    def add(self, x):

        super().add(x)

b = B()

b.add(2)  # 3


Python2.x 实例:

#!/usr/bin/python

# -*- coding: UTF-8 -*- 

 

class A(object):   # Python2.x 记得继承 object

    def add(self, x):

         y = x+1

         print(y)

class B(A):

    def add(self, x):

        super(B, self).add(x)

b = B()

b.add(2)  # 3


返回值

无。


实例

以下展示了使用 super 函数的实例:

实例

#!/usr/bin/python

# -*- coding: UTF-8 -*- 

 

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),然后把类 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')


执行结果:

Parent

Child

HelloWorld from Parent

Child bar fuction
I'm the parent.


点击咨询直接了解更多相关资料,我在惠州北大青鸟新方舟等你。

 

本文内容转载自网络,版权归原作者所有,如有侵权请联系我们进行删除。


标签:惠州计算机软件培训惠州计算件软件开发惠州计算机软件基础惠州计算机Python软件开发惠州Python培训学校惠州Python培训python基础教程python是什么python教程python入门


Python技术排行
标签列表
网站分类
文章归档
最近发表