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