Python练习-一个怪癖老师的不可描述

 1 # 编辑者:闫龙
 2 # 定义老师类,把老师的属性:薪资,隐藏起来,然后针对该属性开放访问接口
 3 #     egon老师有多种癖好,把这种癖好隐藏起来,然后对外提供访问接口
 4 #     而且以后还会egon老师培养很多其他的癖好,对外开放修改接口可以新增癖好
 5 # 并且需要保证新增的癖好都是字符串类型,否则无法增加成功
 6 menu = ["查看工资","查看怪癖","添加怪癖"] #定义一个菜单
 7 class Teacher:#老师类
 8     def __init__(self,name,pay):#初始化时传入名字和工资
 9         self.__pay = pay#工资作为隐藏属性
10         self.name = name
11     def GetPay(self):#查看工资方法
12         print(self.name,"的工资是",self.__pay,"元,请保密,千万不要贴在办公室的墙上")
13 class Wack:#定义怪人类
14     def __init__(self,hobby):#初始化时传入hobby列表
15         self.__hobby = hobby#怪癖作为隐藏属性
16     def addHobby(self,choice):#添加新怪癖方法
17         self.__hobby.append(choice)#添加新的怪癖到隐藏属性hobby中
18         print("怪癖添加完成")
19     def LookHobby(self):#查看怪癖方法
20         print(self.name,"的的怪癖如下:")
21         for i in self.__hobby:
22             print(i)
23 class WackTeacher(Teacher,Wack):#定义怪老师类,继承老师和怪人类
24     def __init__(self,name,pay,hobby):#初始化时将怪人,老师初始化时的参数逐一接收
25         Teacher.__init__(self,name,pay)
26         Wack.__init__(self,hobby)
27         print("%s已经出现在视野里"%name)
28     def GetSetWackTeacher(self):#对怪老师的操作方法
29         for i in range(len(menu)):
30             print("%s.%s"%(i+1,menu[i]))
31         choice = input("请选择:")
32         if(choice == "1"):
33             Teacher.GetPay(self)#查看怪老师的工资
34             self.GetSetWackTeacher()#重新调用怪老师的操作方法
35         elif(choice == "2"):
36             Wack.LookHobby(self)#查看怪老师的怪癖
37             self.GetSetWackTeacher()
38         elif(choice == "3"):#增加一个新的怪癖
39             while True:
40                 choice = input("新的怪癖:")
41                 if(type(choice)==str):
42                     Wack.addHobby(self, choice)
43                     self.GetSetWackTeacher()
44                 else:
45                     continue
46 #实例化怪老师类,Egon
47 Egon = WackTeacher("egon",2.5,["矮根儿","小林林","海峰","SomeBody"])
48 #Egon中的怪老师操作方法
49 Egon.GetSetWackTeacher()
原文地址:https://www.cnblogs.com/DragonFire/p/6740407.html