让python飞:形象理解python 多态、自定义异常、slots

这篇博客探讨了面向对象编程中的多态性概念,通过一个医生与动物主人的故事来比喻,说明如何利用父类引用操作子类对象提高效率。文章还提到了动态为对象添加属性的限制,并介绍了自定义异常类的实现方式。此外,还涉及到了代码中异常处理和特定场景的应用,如使用警报器来检测超出标准的狗毛长度。
摘要由CSDN通过智能技术生成

在这里插入图片描述
Day13 医生
有一个医生在闭目养神,突然来了个父亲说他的两个孩子猫和狗都生了病,希望医生给看看。医生心想这要是一个一个的叫进来看,太麻烦,效率不高。我还不如直接让猫和狗的爸爸进来,然后让他来描述猫和狗的病情不就简单多了吗

面向对象特性三之多态性:(思想来源于生活)多态:一种事物的多种形态,使用需要先存在继承的关系。生活层面:
计算机层面:
	   父类的引用指向子类的对象
	   子类的对象给到父类的引用
最常出现的位置(代码):在函数的形参
(p = Person()
d = Dog('汪汪')
c = Cat('咪咪')
p.feedDog(d)
p.feedCat(c)

p.feedAnimal(d)
p.feedAnimal(c)

那个父亲就把猫和狗的情况告诉了医生,医生一听病情,说,这只狗的病情很严重啊,需要进行大修才行。这时父亲说,能不能只给狗的几个部位修,我不想让它变化太大。那个父亲就掏出一个装置,这个装置是两只小蛇中间夹着一个调料盒,调料盒里放着牛肉丸子,每个牛肉丸子上就刻着一个可以狗狗身上可以更改的部位

动态为对象添加属性的范围为:name、age、height、weight
__slots__ = ('name','age','height','weight')。
(__slots__使用:
作用:
	接受一个元祖对象,将可以为对象动态添加的属性名定义其中称为其元素;
	目的:约束对象动态添加的属性内容。位置:定义class的内部,函数的外部
注意:
	__slots__和__dict__不能同时出现)

,那个父亲将这个装置放在了狗狗头上。医生答应了那个父亲。
医生看着小狗,感觉这狗毛长短不一,他想要留下2cm以下的毛,把其他异常的毛都剃掉,于是医生调来了警报科的一个警报器,剃毛的时候如果遇到长于2cm的毛,警报器就会响

自定义异常类:
实现:定义一个类继承已有的一个异常类型(通常:Exception)
class MyException(Exception):
    def __init__(self,msg):
        super().__init__(msg)

def setAge(self,age):
    if age < 0 or age > 130:
        raise MyException("出现异常了...")
    else:
        self.__age = age

def getAge(self):
    return self.__age

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值