练习1:面向对象

T3h4t5-Blog90 / 2024-01-17 / 原文

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

要求:

  1. 设置属性的私有访问权限,通过公有的 get,set 方法实现对属性的访问

  2. 限定心情只能有“心情好”和“心情不好”两种情况,如果无效输入进行提示, 默认设置“心情好”。

  3. 设置构造函数实现对属性赋值

  4. 叫和跑的方法,需要根据心情好坏,描述不同的行为方式。

编写测试类,测试狗类的对象及相关方法(测试数据信息自定义)

class Dog:
    def __init__(self,variety,age,mood,name):
        self._variety=variety
        self._age=age
        self._mood=mood   #私有
        self._name=name

    def get_variety(self):
        return self._variety

    def set_variety(self,variety):
        self.variety=variety

    def get_age(self):
        return self._age

    def set_age(self,age):
        self.age=age

    def get_name(self):
        return self._name

    def set_name(self, name):
        self.name=name

    def get_mood(self):
        return self._mood

    def set_mood(self,mood):
        if mood in ['心情好','心情不好']:
            self.mood=mood
        else:
            print('输入错误信息,这只狗狗今天心情很好!')

    def call(self):
        if self._mood=='心情好':
            print(f'名字叫{self._name}的{self._variety}心情很好,开心的围着主人身边转')
        else:
            print(f'字叫{self._name}的{self._variety}心情不好,伤心的一动不动')

    def run(self):
        if self._mood=='心情好':
            print(f'名字叫{self._name}的{self._variety}心情很好,开心的汪汪叫')
        else:
            print(f'名字叫{self._name}的{self._variety}心情很不好,伤心的呜呜叫')


dog3=Dog('贵宾犬',3,'心情好','甜心')
dog3.set_mood('goujiao')


dog1=Dog('贵宾犬',3,'心情好','甜心')
# print(dog1.get_name(),dog1.get_variety(), dog1.get_mood())

dog1.call()
dog1.run()
print('='*50)
dog2=Dog('德州牧犬',2,'心情不好','太子')
dog2.call()
dog2.run()