python变量如何封装_Python基础之面向对象2(封装)

"""学生管理器系统"""

classStudentModel:"""学生数据模型类"""

def __init__(self, name="", age=0, score=0, id=0):"""创建学生对象

:param id: 编号

:param name: 姓名

:param age: 年龄

:param score: 成绩"""self.id=id

self.name=name

self.age=age

self.score=score

@propertydefid(self):return self.__id@id.setterdefid(self, value):

self.__id =value

@propertydefname(self):return self.__name@name.setterdefname(self, value):

self.__name =value

@propertydefage(self):return self.__age@age.setterdefage(self, value):

self.__age =value

@propertydefscore(self):return self.__score@score.setterdefscore(self, value):

self.__score =valueclassStudentManagerController:"""学生逻辑控制器"""

def __init__(self):

self.__list_stu =[]

@propertydeflist_stu(self):return self.__list_stu

defadd_student(self, stu):"""添加新学生

:param stu: 需要添加的学生对象"""stu.id= self.__generate_id()

self.__list_stu.append(stu)def __generate_id(self):#生成编号的需求:新编号,比上次添加的对象编号多1.

#if len(self.__list_stu) > 0:

#id = self.__list_stu[-1].id + 1

#else:

#id = 1

#return id

return self.__list_stu[-1].id + 1 if len(self.__list_stu) > 0 else 1

#controller = StudentManagerController()#controller.add_student(StudentModel("zs",18,85))#controller.add_student(StudentModel("zs",18,85))#for item in controller.list_stu:#print(item.id,item.name,item.age,item.score)

classStudentManagerView:"""界面视图类"""

def __init__(self):#创建逻辑控制器对象

self.__manager =StudentManagerController()def __input_students(self):#1. 在控制台中录入学生信息,存成学生对象StudentModel.

stu =StudentModel()

stu.name= input("请输入姓名:")

stu.age= int(input("请输入年龄:"))

stu.score= int(input("请输入成绩:"))#2. 调用逻辑控制器的add_student方法

self.__manager.add_student(stu)print(self.__manager)def __display_menu(self):"""显示菜单

:return:"""

print("1) 添加学生")print("2) 显示学生")print("3) 删除学生")print("4) 修改学生")print("5) 按照成绩降序排列")def __select_menu(self):"""选择菜单

:return:"""number= input("请输入选项:")if number == "1":

self.__input_students()elif number == "2":pass

elif number == "3":pass

elif number == "4":pass

elif number == "5":pass

defmain(self):"""界面入口方法

:return:"""

whileTrue:

self.__display_menu()

self.__select_menu()

view=StudentManagerView()

view.main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值