笔记十二:python之类的继承

3 篇文章 0 订阅
2 篇文章 0 订阅

继承:表面意思就是说一个类继承了另一个类的所有属性及方法函数等,这里两个类就是‘属于’的关系,被继承的类叫父类,或基类或超类,继承别人家的类叫子类或者派生类,两者继承的东西,可以理解为父类有的子类都有,那么父类中已经有的,我再写子类的时候,就不用再重复写父类的函数或者属性了,直接调用即可。

当然,在父类的属性或者函数方法无法满足子类时,子类可以自己重写一些属性或者函数方法等,那重写尼,分为以下两类:

1.部分重新,保留父类中的属性及函数方法,重新写一些新的属性函数方法。

2.就是全部重写,直接覆盖父类原有的功能。

下面就举个简单的例子!

class People(object):

    def __init__(self, name, age, weight):
        self.name = name
        self.age = age
        self.weight = weight

    # People类的对象执行work_time()函数时,计算工作后的体重
    def work_time(self, time):
        """
        根据工作时间,增减体重
        :param time: 工作时间
        :return: None
        """
        """
        如果工作时间<=8 小时  体重不变
        如果工作时间大于8,小于等于12小时 ,体重-2斤
        如果工作时间大于12小时  体重-4斤
        """
        if time <= 8:
            pass
        elif time <= 12:
            self.weight -= 2
        else:
            self.weight -= 4
        print('{s.name}工作了{t}个小时之后,体重为{s.weight}斤。'.format(s=self, t=time))


class Man(People):
    def __init__(self, name, age, weight, height, money):
        # 初始化父类中写好的属性
        super(Man, self).__init__(name, age, weight)
        # 初始化当前类拥有的一些属性
        self.height = height
        self.money = money

    # Man类的对象执行work_time()函数时,除了要计算体重之外,还要计算身材是否标准
    # 父类中的work_time()函数满足不了Man类的要求,部分重写父类函数
    def work_time(self, time):
        # 1.保留执行父类功能
        super(Man, self).work_time(time)
        # 2.添加新功能
        # 身高 - 105 = 体重(kg) 标准
        # 身高 - 105 > 体重(kg) 偏瘦
        # 身高 - 105 < 体重(kg) 偏胖
        if self.height - 105 == self.weight//2:

            print('标准身材')
        elif self.height - 105 > self.weight//2:

            print('偏瘦身材')
        else:

            print('偏胖身材')


p1 = People('张三', 21, 170)
p1.work_time(12)

m1 = Man('李四', 22, 180, 180, 10000)
m1.work_time(12)

根据上面的代码,你应该就知道了继承的优势:可以更好的实现代码的重用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值