最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python中类的继承是什么

    正文概述    2020-09-09   238

    Python中类的继承是什么

    一、继承的概念

    在现实生活中,继承一般指的是子女继承父辈的财产,在程序中,继承描述的是事物之间的所属关系,例如猫和狗都属于动物,程序中便可以描述为猫和狗继承自动物;同理,波斯猫和巴厘猫都继承自猫,而沙皮狗和斑点狗都继承足够,如下如所示:

    Python中类的继承是什么

    二、继承的示例

    class Cat(object):
        def __init__(self,name,color="白色"):
            self.name = name
            self.color = color
        def run(self):
            print("%s:在跑"%self.name)
    class Bosi(Cat):
        def setNewName(self,newName):
            self.name = newName
        def eat(self):
            print("%s:在吃"%self.name)
    bs = Bosi("波斯猫")
    print("bs的名字是:%s,颜色是:%s"%(bs.name,bs.color))
    bs.eat()
    bs.setNewName("汤姆猫")
    bs.run()

    运行结果为:

    bs的名字是:波斯猫,颜色是:白色
    波斯猫:在吃
    汤姆猫:在跑

    相关推荐:《Python视频教程》

    说明:

    1.虽然子类没有定义__init__()方法,但是父类有。所以在子类集成父类的时候这个方法就被继承了,所以只要创建Bosi的对象,就默认执行了那个继承过来的__init__()方法。

    2.子类在继承的时候,在定义类时,小括号()中为父类的名字。

    3.父类的所有非私有的属性、方法、会被继承给子类。

    注意:

    1.私有的属性,不能通过对象直接访问,但是可以通过方法访问。

    2.私有的方法,不能通过对象直接访问。

    3.私有的属性、方法,不会被子类继承,也不能被访问。

    4.一般情况下,私有的属性、方法都是不对外公布的,往往用来做内部的事情,起到安全的作用。

    class Animal(object):
        def __init__(self, name = "动物",color = "白色"):
            self.__name = name
            self.color = color
        
        def __test1(self):
            print(self.__name)
            print(self.color)
        def test2(self):
            print(self.__name)
            print(self.color)
    class Dog(Animal):
        def dogTest1(self):
            #不能访问父类的私有属性:AttributeError: 'Animal' object has no attribute '__name'
            #print(self.__name)
            print(self.color)
        def dogTest2(self):
            #self.__test1()
            self.test2()
    A = Animal()
    #print(A.__name)
    print(A.color)
    #不能访问父类的私有方法:AttributeError: 'Animal' object has no attribute '__test1'
    #A.__test1()
    A.test2()
    print("-----------------分割线-----------------")
    D = Dog(name="阿黄",color = "黄色")
    D.dogTest1()
    D.dogTest2()

    运行结果为:

    白色
    动物
    白色
    -----------------分割线-----------------
    黄色
    阿黄
    黄色

    三、多继承

    Python中类的继承是什么

    从图中能够看出,所谓多继承,即子类有多个父类,并且具有它们的特征。

    Python中多继承的格式如下:

    class A:
        def printA(self):
            print("---A---")
    class B:
        def printB(self):
            print("---B---")
    #定义一个子类继承A,B
    class C(A,B):
        def printC(self):
            print("---C---")
    obj_C = C()
    obj_C.printA()
    obj_C.printB()

    运行结果为:

    ---A---
    ---B---

    说明

    1.python中是可以多继承的。

    2.父类中的方法、属性,子类会继承。

    3.如果多个父类中有同一个方法,谁写在前面就调用谁的方法。

    class A:
        def printA(self):
            print("---A---")
    class B:
        def printB(self):
            print("---B---")
    #定义一个子类继承A,B
    class C(A,B):
        def printC(self):
            print("---C---")
    obj_C = C()
    obj_C.printA()
    obj_C.printB()
    #可以查看一个雷的对象搜索方法时的先后顺序
    print(C.__mro__)

    运行结果为:

    ---A---
    ---B---
    (<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <class 'object'>)


    起源地下载网 » Python中类的继承是什么

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元