使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心情,名字;方法包括:叫,跑。
要求:
1) 设置属性的私有访问权限,通过公有的 get,set 方法实现对属性的访问
2) 限定心情只能有“心情好”和“心情不好”两种情况,如果无效输入进行提示, 默认设置“心情好”。
3) 设置构造函数实现对属性赋值
4) 叫和跑的方法,需要根据心情好坏,描述不同的行为方式。
编写测试类,测试狗类的对象及相关方法(测试数据信息自定义)
def __init__(self, breed, age, mood, name):
self.__breed = breed
self.__age = age
self.set_mood(mood)
self.__name = name
def set_breed(self, breed):
self.__breed = breed
def get_breed(self):
return self.__breed
def set_age(self, age):
self.__age = age
def get_age(self):
return self.__age
def set_mood(self, mood):
if mood == '心情很好' or mood == '心情不好':
self.__mood = mood
else:
print('输入信息错误,这只狗狗今天心情很好')
self.__mood = '心情很好'
def get_mood(self):
return self.__mood
def set_name(self, name):
self.__name = name
def get_name(self):
return self.__name
def shout(self):
if self.__mood == '心情很好':
print(f'名字叫{self.__name}的{self.__breed}{self.__mood},开心的汪汪叫')
else:
print(f'名字叫{self.__name}的{self.__breed}{self.__mood},伤心的呜呜叫')
def run(self):
if self.__mood == '心情很好':
print(f'名字叫{self.__name}的{self.__breed}{self.__mood},开心的围着主人身边转')
else:
print(f'名字叫{self.__name}的{self.__breed}{self.__mood},伤心的一动不动')
if name == 'main':
d1=Dog('贵宾犬',2,'难受','甜心')
d1.run()
d1.shout()
print('='*50)
d2=Dog('德国牧羊犬',3,'心情不好','太子')
d2.run()
d2.shout()