最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python可以继承父类方法吗

    正文概述    2020-05-13   302

    python可以继承父类方法吗

    python继承,调用父类属性方法

    在python里面,继承一个类只需要这样写:

    class Animal:
        def heshui(self):
            print('动物正在喝水')
    
    class Cat(Animal):
        pass

    这样Cat就有了Animal的所有属性和方法,调用的时候直接调用就可以了:

    #接上面代码
    
    cat = Cat()
    
    cat.heshui()
    
    >>>动物正在喝水

    这个时候,如果子类想重写父类的方法,可以直接重写:

    class Animal:
        def heshui(self):
            print('动物正在喝水')
    
    class Cat(Animal):
        def heshui(self):
            print('猫正在喝水')
    cat = Cat()
    cat.heshui()
    
    >>>猫正在喝水

    如果想调用父类的 heshui 这个方法,可以用 super() :

    class Animal:
        def heshui(self):
            print('动物正在喝水')
    
    class Cat(Animal):
        def heshui(self):
            super().heshui()
    cat = Cat()
    cat.heshui()
    
    >>>动物正在喝水

    强制调用父类私有属性方法

    如果父类的方法是私有方法,如 def __heshui(self)  这样的话再去调用就提示没有这个方法,其实编译器是把这个方法的名字改成了 _Animal__heshui(),如果强制调用,可以这样:

    class Animal:
        def __heshui(self):
            print('动物正在喝水')class Cat(Animal):
        def heshui(self):
            super()._Animal__heshui()
    
    cat = Cat()
    cat.heshui()>>>动物正在喝水

    最后,如果自己也定义了 __init__ 方法,那么父类的属性是不能直接调用的:

    class Animal:
        def __init__(self):
            self.a = 'aaa'
    
    class Cat(Animal):
        def __init__(self):
            pass
    
    cat = Cat()
    print(cat.a)
    
    >>>AttributeError: 'Cat' object has no attribute 'a'

    那么可以在 子类的 __init__中调用一下父类的 __init__ 方法,这样就可以调用了:

    class Animal:
        def __init__(self):
            self.a = 'aaa'class Cat(Animal):
        def __init__(self):
            super().__init__()  #也可以用 Animal.__init__(self)  这里面的self一定要加上
    
    cat = Cat()
    print(cat.a)>>>aaa

    下载网 » python可以继承父类方法吗

    常见问题FAQ

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

    发表评论

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

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

    联系作者

    请选择支付方式

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