首页 > 其他分享 >练习题1

练习题1

时间:2024-01-17 15:37:26浏览次数:26  
标签:练习题 .__ mood self breed def name

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

要求:

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

标签:练习题,.__,mood,self,breed,def,name
From: https://www.cnblogs.com/pecular/p/17970103

相关文章

  • PA0:关于练习题
    练习11: 附加题:复制操作:i=0;while(i<argc){states[i]=argv[i];i++;}如果还要考虑安全性,那就在循环体里面增加判断:i=0;j=0;while(i<argc){states[i]=argv[i];i++;j++;if(j>=......
  • PA0:关于练习题
    网页浏览体验很差,希望下次不要再找广告满天飞的网站搭翻译博客。网页做的很好,以后别做了。  不使用stdio库。gcc在make时会提示存在implicitdeclaration(隐式声明)--------------------------------------------makefile基本指令解释:CFLAGS=-Wall-g clean:   rm......
  • 算法练习题-系列一
    目录柯里化实现柯里化函数柯里化函数作用扁平化[双指针]有序数组合并判断一个字符串是否是回文字符串[字符串]两个版本号version1和version2[字符串]版本号大小比较排序['1.45.0','1.5','6','3.3.3.3.3.3.3']=>['1.5','1.45.0','3.3.3.3.3.3','6']给定两个......
  • 队列练习题
    求m区间内的最小值(洛谷P1440)题目大意对一序列a,从左至右扫描,取每个位置前m个数的最小值,位置为首位置时输出0,不足m个数时就取这段范围内的最小值。解题思路使用单调队列,保持队头存最小元素下标,从队尾更新最值,超出窗口范围时队头出队。未知的代码#include<bits/stdc++.h>u......
  • 栈练习题
    单调栈(洛谷P5788)题目大意与栈中的向右看齐相同题解未知的代码#include<bits/stdc++.h>usingnamespacestd;constintN=3e6+5;inta[N],ans[N],n;stack<int>s;intmain(){cin>>n;for(inti=1;i<=n;i++)cin>>a[i];for(inti=n;i>=1;i--){......
  • Java多线程​(五)练习题7道
    练习多线程练习1(卖电影票)一共有1000张电影票,可以在两个窗口领取,假设每次领取的时间为3000毫秒,要求:请用多线程模拟卖票过程并打印剩余电影票的数量线程类实现:publicclassTicketWindowextendsThread{publicTicketWindow(){}publicTicketWindow(Stringname){super(nam......
  • c203数据库练习题下半
    2、视图练习(1)建立视图v_xs_1,要求包含男生的学号,姓名,性别,出生日期,班级编号,专业名称字段,并要求视图操作数据时进行检查。使用select命令查询创建的视图。createviewv_xs_1asselectxh,xm,xb,csrq,bjbh,zymcfromxsjbxxbwherexb='男'withcheckoption;建立一个学院教师......
  • c203数据库练习题上半
    1.使用SQL语言创建满足以下要求的数据库。(1)创建数据库名称为jwgl,字符集选择utf8,排序规则选择utf8_general_ci。createdatabasejwglcharactersetutf8collateutf8_general_ci;(2)查看数据库。showdatabases;(3)将数据库jwgl的指定字符集修改为gb2312。mysql>alterdatabasejwg......
  • 倍增基础练习题
    syoj806.序列翻转P6148[USACO20FEB]SwapitySwapitySwapS\(n\)个进行\(m\)次操作,每次操作将所给的\(l\)到\(r\)区间进行翻转。一共会重复\(k\)次上述操作。\(k<=1e9\)。倍增\(k\),设\(f[i][j]\)表示总操作重复\(2^i\)次后的序列。预处理时,转移方程为\(f[......
  • 十、练习题
    练习题......