练习题1

使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心情,名字;方法包括:叫,跑。

要求:

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()

posted @ 2024-01-17 15:21  peculiar-  阅读(18)  评论(0)    收藏  举报