# 编辑者:闫龙
# 定义老师类,把老师的属性:薪资,隐藏起来,然后针对该属性开放访问接口
# 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. [转帖]超能课堂 CPU制作过程

    http://www.expreview.com/50814.html 一般来说,我们对IC芯片的了解仅限于它概念,但是对于已经应用到各式各样的数码产品中IC芯片是怎么来的?大家可能只知道制作IC芯片 ...

  2. Windows10 桌面显示 我的电脑

    桌面上面有我的电脑还是非常方便的 但是 不激活有时候没法选择: 方法 桌面空白处右键---个性化 然后在 个性化- 主题- 桌面图标设置 增加即可.

  3. (转)web开发流程

    a.项目经理与公司决策层的沟通,以确定这个需求有没有足够的人手和可行性去实现,以及与现有产品的依存关系. b.公司决策层与市场/策划部门的交流,这个过程将进行的相当充分,并且是反复.长期的,它致力于从 ...

  4. Java 使用 dom4j 读取 xml文档 demo

    <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://www. ...

  5. javascript获取当前日期和时间

    ){ ){ _time = year+"-"+month+"-"+date+" "+hour+":"+minu+&quo ...

  6. DAY2-Python学习笔记

    1.迭代器:可以直接作用于for循环的对象统称为可迭代对象:Iterable,使用isinstance()判断一个对象是否是Iterable对象: >>> from collecti ...

  7. BZOJ 2251: [2010Beijing Wc]外星联络

    2251: [2010Beijing Wc]外星联络 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 795  Solved: 477[Submit][ ...

  8. logstash5生成init脚本后台启动

    默认情况使用rpm包安装完logstash之后没有启动脚本,这一点我觉得算是开发不够彻底.官网给了一个脚本,需要根据不同的系统版本生成对应的启动脚本,而且官网没有给明使用方法,对于新用户来说算是个坑, ...

  9. Java EE之通过表单上传文件

    public class Ticket { private String customerName; private String subject; private String body; priv ...

  10. Python之旅:并发编程之IO模型

    一 IO模型介绍 为了更好地了解IO模型,我们需要事先回顾下:同步.异步.阻塞.非阻塞 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非 ...