zoukankan      html  css  js  c++  java
  • python类的继承super()的使用

    类的继承中,如果要全部继承父类的话,但是自己的init方法又想要初始化新的属性,如下:

    class Animal():
    
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def eat(self):
            return "我在吃东西"
    
        def sleep(self):
            print("animal {} is sleep".format(self.name))
            return "我在睡觉觉"
    
        def __repr__(self):
            return "my name:{},age:{}".format(self.name,self.age)
    
    
    class WaterBird(Animal):
        # 继承animal的属性方法init后,想要加入自己的属性weight
        def __init__(self,name,weight):
            self.name=name
            self.weight=weight
        def swim(self):
            return "我能游泳"
        def __repr__(self):
            return "我的名字:{},我的年龄:{}".format(self.name,self.age)
    
    
    waterbird=WaterBird("水鸟","8")
    print(waterbird)
    

      这样写,有什么问题吗?,运行一下:

     报错:因为waterbird重新定义了init方法,原来animal的init的方法就没有了,就被覆盖掉了,如过还想要原来animal的属性怎么办呢?

    class Animal():
    
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
        def eat(self):
            return "我在吃东西"
    
        def sleep(self):
            print("animal {} is sleep".format(self.name))
            return "我在睡觉觉"
    
        def __repr__(self):
            return "my name:{},age:{}".format(self.name,self.age)
    
    
    class WaterBird(Animal):
        # 继承animal的属性方法init后,想要加入自己的属性weight
        def __init__(self,name,weight,age):
            # 通过super()方法,继承下原来animal的init方法
            super().__init__(name,age)
            self.weight=weight
        def swim(self):
            return "我能游泳"
        def __repr__(self):
            return "我的名字:{},我的年龄:{}".format(self.name,self.age)
    
    
    waterbird=WaterBird("水鸟","8","3")
    print(waterbird)
    

      

    全世界的程序员们联合起来吧!
  • 相关阅读:
    apache 多站点设置
    关键词使用什么分隔符好
    ASP.NET MVC ModelState与数据验证【转】
    Sealed,new,virtual,abstract与override的区别
    ASP.NET MVC4中调用WEB API的四个方法
    wcf 基础连接已经关闭: 连接被意外关闭
    解决MySQL不允许从远程访问的方法有哪些?
    PHP魔法函数 自动转义 magic_quotes_gpc和magic_quotes_runtim
    Html.RenderPartial与Html.RenderAction 用法
    MVC中的扩展点 ActionResult
  • 原文地址:https://www.cnblogs.com/chaojiyingxiong/p/15109159.html
Copyright © 2011-2022 走看看