资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python中继承机制的详细简介-创新互联

创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站制作、临县网络推广、微信小程序定制开发、临县网络营销、临县企业策划、临县品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联公司为所有大学生创业者提供临县建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

这篇文章给大家分享的是有关python中继承机制的详细简介的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。

面向对象的主要好处就是代码的重用,实现这一特点通过继承,继承创建的新类成为子类,被继承的类称为父类。

如果在子类中需要父类的构造方法就需要显示的调用父类的构造方法,在调用基类的方法时,需要加上基类的类名前缀,且需要带上 self 参数变量。

下面我们开始来讲解继承和多继承

首先我们创建两个类,

父类:Father类  子类:Child

父类中属性为money,和一个方法play(),输出

father play with me

来表示继承父类的方法。在继承的时候我们需要在子类中导入父类

父类的代码如下:

class Father(object):
    def __init__(self,money):
        self.money=money
        print('money',money)
    def play(self):
        print('father play with me')

因为孩子是继承父亲的,所以孩子类中也有money属性。 所以我们直接用child来继承Father类。

child代码如下:

from Father import Father
class Child(Mother,Father):
    def __init__(self,money):
        Father.__init__(self, money)

这个时候我们的child类就继承来自父类的属性 money 而且我们还继承了来自父类的方法play(),我们可以直接调用。

来验证一下

from Child import Child
    def main():
        c=Child(100)
        c.play()
if __name__=='__main__':
    main()

我们从输出台可以得到 money 100  father play with me

多继承

单继承有时候可能满足不了我们所需的所以我们就会遇到多继承,这个同样能够展示出代码的重用。

同样是上边的例子,child不仅仅是继承来自父亲,还继承来自母亲。所以我们创建mother类

class Mother(object):
    def __init__(self,face):
        self.face=face
        print('face',face)
    def play(self):
        print('mother go shopping with me')

mothe类创建的属性为face,其次我们还定义的一个相同的方法play 是为了展示多继承中如果有相同的函数会调用哪个。

然后我们重写一下child类

from Father import Father
from Mother import Mother
class Child(Mother,Father):
    def __init__(self,money,face):
        Father.__init__(self, money)
        Mother.__init__(self,face)

感谢各位的阅读!关于python中继承机制的详细简介就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!


文章名称:python中继承机制的详细简介-创新互联
URL链接:http://cdkjz.cn/article/dejesd.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220