我是小白,程序报错,请前辈们看一下,谢谢!
代码:
class StudentModel:
def __init__(self, n01=0, name="", age=0, score=0):
self.n01 = n01
self.name = name
self.age = age
self.score = score
class StudentManagerController:
__init_n01 = 1000
def __init__(self):
self.__stu_list = []
@property
def stu_list(self):
return self.__stu_list
def add_student(self, stu_info):
stu_info.n01 = self.__generate_n01()
self.__stu_list.append(stu_info)
def __generate_n01(self):
StudentManagerController.__init_n01 += 1
return StudentManagerController.__init_n01
def remove_student(self, n01):
for item in self.__stu_list:
if item.n01 == n01:
self.__stu_list.remove(item)
return True
return False
def update_student(self, str_info):
for item in self.__stu_list:
if item.n01 == str_info.n01:
item.name = stu_info.name
item.age = stu_info.age
item.score = stu_info.score
return True
return False
class StudentManagerView:
def __init__(self):
self.__manager = StudentManagerController()
def __display_menu(self):
print("1)添加学生")
print("2)显示学生")
print("3)删除学生")
print("4)修改学生")
print("5)按照成绩升序显示学生")
def __select_menu(self):
item = input("请输入:")
if item == "1":
self.__input_student()
elif item == "2":
self.__output_student(self.__manager.stu_list)
elif item == "3":
pass
elif item == "4":
pass
elif item == "5":
pass
def main(self):
while True:
self.__display_menu()
self.__select_menu()
def __input_student(self):
name = input("请输入姓名:")
age = int(input("请输入年龄:"))
score = int(input("请输入成绩:"))
stu = StudentModel(n01, name, age, score)
self.__manager.add_student(stu)
def __output_student(self, list_output):
for item in list_output:
print(item.id, item.name, item.age, item.score)
view = StudentManagerView()
view.main()
报错代码:
1)添加学生
2)显示学生
3)删除学生
4)修改学生
5)按照成绩升序显示学生
请输入:1
请输入姓名:qtx
请输入年龄:45
请输入成绩:78
Traceback (most recent call last):
File “D:\python\项目\学生管理系统.py”, line 87, in
view.main()
File “D:\python\项目\学生管理系统.py”, line 72, in main
self.select_menu()
File “D:\python\项目\学生管理系统.py”, line 59, in __select_menu
self.input_student()
File “D:\python\项目\学生管理系统.py”, line 78, in __input_student
stu = StudentModel(n01, name, age, score)
^^^
NameError: name ‘n01’ is not defined
进程已结束,退出代码1
需求:
请前辈们指点一下报错原因和解决方法,谢谢!
Variable
n01
not defined in method__input_student
No attribute
id
foritem
in method__output_student