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
!