# 编辑者:闫龙
# 定义老师类,把老师的属性:薪资,隐藏起来,然后针对该属性开放访问接口
# egon老师有多种癖好,把这种癖好隐藏起来,然后对外提供访问接口
# 而且以后还会egon老师培养很多其他的癖好,对外开放修改接口可以新增癖好
# 并且需要保证新增的癖好都是字符串类型,否则无法增加成功
menu = ["查看工资","查看怪癖","添加怪癖"] #定义一个菜单
class Teacher:#老师类
def __init__(self,name,pay):#初始化时传入名字和工资
self.__pay = pay#工资作为隐藏属性
self.name = name
def GetPay(self):#查看工资方法
print(self.name,"的工资是",self.__pay,"元,请保密,千万不要贴在办公室的墙上")
class Wack:#定义怪人类
def __init__(self,hobby):#初始化时传入hobby列表
self.__hobby = hobby#怪癖作为隐藏属性
def addHobby(self,choice):#添加新怪癖方法
self.__hobby.append(choice)#添加新的怪癖到隐藏属性hobby中
print("怪癖添加完成")
def LookHobby(self):#查看怪癖方法
print(self.name,"的的怪癖如下:")
for i in self.__hobby:
print(i)
class WackTeacher(Teacher,Wack):#定义怪老师类,继承老师和怪人类
def __init__(self,name,pay,hobby):#初始化时将怪人,老师初始化时的参数逐一接收
Teacher.__init__(self,name,pay)
Wack.__init__(self,hobby)
print("%s已经出现在视野里"%name)
def GetSetWackTeacher(self):#对怪老师的操作方法
for i in range(len(menu)):
print("%s.%s"%(i+1,menu[i]))
choice = input("请选择:")
if(choice == ""):
Teacher.GetPay(self)#查看怪老师的工资
self.GetSetWackTeacher()#重新调用怪老师的操作方法
elif(choice == ""):
Wack.LookHobby(self)#查看怪老师的怪癖
self.GetSetWackTeacher()
elif(choice == ""):#增加一个新的怪癖
while True:
choice = input("新的怪癖:")
if(type(choice)==str):
Wack.addHobby(self, choice)
self.GetSetWackTeacher()
else:
continue
#实例化怪老师类,Egon
Egon = WackTeacher("egon",2.5,["矮根儿","小林林","海峰","SomeBody"])
#Egon中的怪老师操作方法
Egon.GetSetWackTeacher()

Python练习-一个怪癖老师的不可描述的更多相关文章

  1. Pyscripter是python下一个非常流行的开源IDE

    Pyscripter 不能正确调用另一文件中模块的问题的解析(Internal Engine 和 Remote Engine) 背景 Pyscripter是python下一个非常流行的开源IDE,笔者 ...

  2. python socket编程---从使用Python开发一个Socket示例说到开发者的思维和习惯问题

    今天主要说的是一个开发者的思维和习惯问题. 思维包括编程的思维和解决一个具体问题的分析思维,分析思路,分析方法,甚至是分析工具. 无论是好习惯还是不好的习惯,都是在者一天一天的思维中形成的.那些不好的 ...

  3. 用python做一个搜索引擎(Pylucene)

    什么是搜索引擎? 搜索引擎是“对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分”.如图1是搜索引擎的一般结构,信息搜集模块从网络采集信息到网络信息库之中(一般 ...

  4. 用Python写一个简单的Web框架

    一.概述 二.从demo_app开始 三.WSGI中的application 四.区分URL 五.重构 1.正则匹配URL 2.DRY 3.抽象出框架 六.参考 一.概述 在Python中,WSGI( ...

  5. python 获取一个列表有多少连续列表

    python 获取一个列表有多少连续列表 例如 有列表 [1,2,3] 那么连续列表就是 [1,2],[2,3],[1,2,3] 程序实现如下: 运行结果:

  6. python是一个解释器

    python是一个解释器 利用pip安装python插件的时候,观察到python的运作方式是逐步解释执行的 适合作为高级调度语言: 异常的处理以及效率应该是主要的问题

  7. 使用python检测一个设备是否ping的通

    使用python检测一个设备是否ping的通 一,subprocess以及常用的封装函数 运行python的时候,我们都是在创建并运行一个进程.像Linux进程那样,一个进程可以fork一个子进程,并 ...

  8. python 登陆一个网站

    今天想用python写一个登陆的脚本,搜了一下,网上挺多的,看了一些后写了个登陆虎扑论坛的脚本. 原理: 只要在发送http请求时,带上含有正常登陆的cookie就可以了. 1.首先我们要先了解coo ...

  9. Python开发一个csv比较功能相关知识点汇总及demo

    Python 2.7 csv.reader(csvfile, dialect='excel', **fmtparams)的一个坑:csvfile被csv.reader生成的iterator,在遍历每二 ...

随机推荐

  1. epel [Errno 14] problem making ssl connection

    问题描述: 执行yum命令时,报错[Errno 14] problem making ssl connection 问题分析: ssl证书问题 问题解决: sed -i 's/^#baseurl/ba ...

  2. [转帖]AMD、英特尔为何争相走向胶水多核处理器?真相在此

    AMD.英特尔为何争相走向胶水多核处理器?真相在此 胶水多核到底好不好?这个事不是简单一句话能说明的,今天的超能课堂里我们就来聊聊MCM胶水多核技术的过去及未来. 作者:孟宪瑞来源:超能网|2018- ...

  3. 利用stream对map集合进行过滤

    最近公司在大张旗鼓的进行代码审核,从中也发现自己写代码的不好习惯.一次无意的点到了公司封装的对map集合过滤的方法,发现了stream.于是研究了一下.并对原有的代码再次结合Optional进行重构下 ...

  4. springboot学习笔记-2 一些常用的配置以及整合mybatis

    一.一些常用的配置 1.1 使用没有父POM的springboot 通过添加scope=import的依赖,仍然能获取到依赖管理的好处: <dependencyManagement> &l ...

  5. 反射就是获取该类的.class文件里面的方法,属性

    反射就是获取该类的.class文件里面的方法,属性

  6. Multi-class Classification相关

    标签(空格分隔): 毕业论文 (OS: 最近在做关于多类分类的综述,但是搜索出来好多方向搞得自己云里雾里的,好吧,又是在下孤陋寡闻了.还是那句话,不知道不可怕,但一直不知道就很尴尬了.) one-cl ...

  7. KMP之Z-function (扩展kmp)

    http://codeforces.com/blog/entry/3107 // s[0, ..., n-1], z[0] = 0// z[i] is the length of the longes ...

  8. UILabel居中显示的方法

    在IB中拖出一个UIView @IBOutlet weak var myView: UIView! 下面创建的UILabel是在myView中居中显示 方法1: var label = UILabel ...

  9. 洛谷 P1777 帮助_NOI导刊2010提高(03) 解题报告

    P1777 帮助_NOI导刊2010提高(03) 题目描述 Bubu的书架乱成一团了!帮他一下吧! 他的书架上一共有n本书.我们定义混乱值是连续相同高度书本的段数.例如,如果书的高度是30,30,31 ...

  10. 安装linux系统后调优及安全设置

    环境说明: [root@server1 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@server1 ~]# uname - ...