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

 

查看原文