super()在继承中的使用:(个人理解)

首先,感谢博主链接,接下来是我的测试代码:

print('--------------------------------------------')
class Animal:
    def __init__(self, name, year):
        self.name = name
        self.year = year
    def tiger(self):
        print(self.name, self.year)
class Animal1(Animal):
    pass
zoo = Animal1('tiger', 10)
zoo.tiger()
print('---------------------------------------------')
'''
在内部直接传入数据
'''
class Animal2(Animal):
    # 子类构造函数,不再调用父类构造函数
    # 若想使用父类属性,需要用super方法,类内赋值
    def __init__(self):
        super(Animal2, self).__init__('tiger', 10)
zoo = Animal2()
zoo.tiger()
print('---------------------------------------------')
'''
在外部传入数据
'''
class Animal3(Animal):
    # 构造子类实例(若想外部调用父类属性,需在子类构造函数中填入父类属性(name, year))
    def __init__(self,  ss, name, year):
        super().__init__(name, year)
        self.ss = ss  # 子类特有的属性
zoo = Animal3('tiger', "小明", "18")
print(zoo.ss)
zoo.tiger()

输出:

--------------------------------------------
tiger 10
---------------------------------------------
tiger 10
---------------------------------------------
tiger
小明 18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值