如何修复我的第一个python代码?名称错误,未定义类名



我在第一个编程类中,无论出于什么原因,我都无法修复这段代码。我们必须写一个程序来保存名册。我的老师给了我们一个模板,我完全坚持了下来。她不是最擅长回复电子邮件的人,我在网上搜索了一遍,试图找出答案。我已经检查了我的缩进一百万次了,所以我知道不是这样。我会在下面包含整个代码,谢谢你的帮助!

class TeamClass(object):
name = ""
jersey = ""
number = ""
def __init__(self, name, jersey, number):
self.name = name
self.jersey = jersey
self.number = number
def set_name(self, name):
self.name = name
def set_jersey(self, jersey):
self.jersey = jersey
def set_number(self, number):
self.number = number
def get_name(self):
return self.name
def get_jersey(self):
return self.jersey
def get_number(self):
return self.number
def display_team_roster(self):
print("Player")
print("Name: ", self.name)
print("Jersey: ", self.jersey)
print("Phone Number: ", self.number)
print("-------------")
def menu(self):
print("")
print("<<<<<Main Menu>>>>>")
print("1. Display Team Roster")
print("2. Add Team Member")
print("3. Remove Team Member")
print("4. Edit Team Member")
print("9. Exit Program")
selection = int(input("Enter a menu number or 9 to exit: "))
print("")
return selection
def display_roster(roster):
if len(roster) > 0:
for x in roster.keys():
roster[x].display_team_roster()
else:
print("Roster is empty")
def add_member(roster):
new_member = input("Enter new member: ")
new_jersey = input("Enter jersey#: ")
new_number = input("Enter phone number: ")
roster[new_member] = TeamClass(new_member, new_jersey, new_number)
return roster
def del_member(roster):
del_member = input("Which member would you like to remove?: ")
if del_member in roster:
del roster[del_member]
print(del_member, "has been removed")
else:
print(del_member, "was not found")
return roster
def edit_member(roster):
existing_member = input("Which member would you like to edit? ")
if existing_member in roster:
new_member = input("Enter new members name: ")
new_jersey = input("Enter new jersey#: ")
new_number = input("Enter new phone number: ")
roster[existing_member] = TeamClass(new_member, new_jersey, new_number)
print(existing_member, "has been changed to", new_member)
else:
print(existing_member, "was not found")
return roster
print("")
roster = {}
menu_selection = menu(object)
while menu_selection != 9:
if menu_selection == 1:
display_roster(roster)
elif menu_selection == 2:
roster = add_member(roster)
elif menu_selection == 3:
roster = del_member(roster)
elif menu_selection == 4:
roster = edit_member(roster)
menu_selection = menu()
print("Exiting program")

Python对缩进非常严格,因此为了使这项工作能够通过以下缩进更正您的类:

class TeamClass(object):
name = ""
jersey = ""
number = ""

您可能需要对class TeamClass(object)行以下的所有行进行4-空格缩进,直到def menu(self):行,因为所有这些函数似乎都是TeamClass的方法。虽然menu(self)看起来像是一个类方法,因为它的参数中有self,但我不认为是这样,因为menu是在menu_selection = menu(object)行上直接调用的

class TeamClass(object):
name = ""
jersey = ""
number = ""
def __init__(self, name, jersey, number):
self.name = name
self.jersey = jersey
self.number = number
def set_name(self, name):
self.name = name
def set_jersey(self, jersey):
self.jersey = jersey
def set_number(self, number):
self.number = number
def get_name(self):
return self.name
def get_jersey(self):
return self.jersey
def get_number(self):
return self.number
def display_team_roster(self):
print("Player")
print("Name: ", self.name)
print("Jersey: ", self.jersey)
print("Phone Number: ", self.number)
print("-------------")
def menu(self):
print("")
print("<<<<<Main Menu>>>>>")
print("1. Display Team Roster")
print("2. Add Team Member")
print("3. Remove Team Member")
print("4. Edit Team Member")
print("9. Exit Program")
selection = int(input("Enter a menu number or 9 to exit: "))
print("")
return selection
def display_roster(roster):
if len(roster) > 0:
for x in roster.keys():
roster[x].display_team_roster()
else:
print("Roster is empty")
def add_member(roster):
new_member = input("Enter new member: ")
new_jersey = input("Enter jersey#: ")
new_number = input("Enter phone number: ")
roster[new_member] = TeamClass(new_member, new_jersey, new_number)
return roster
def del_member(roster):
del_member = input("Which member would you like to remove?: ")
if del_member in roster:
del roster[del_member]
print(del_member, "has been removed")
else:
print(del_member, "was not found")
return roster
def edit_member(roster):
existing_member = input("Which member would you like to edit? ")
if existing_member in roster:
new_member = input("Enter new members name: ")
new_jersey = input("Enter new jersey#: ")
new_number = input("Enter new phone number: ")
roster[existing_member] = TeamClass(new_member, new_jersey, new_number)
print(existing_member, "has been changed to", new_member)
else:
print(existing_member, "was not found")
return roster
print("")
roster = {}
menu_selection = menu(object)
while menu_selection != 9:
if menu_selection == 1:
display_roster(roster)
elif menu_selection == 2:
roster = add_member(roster)
elif menu_selection == 3:
roster = del_member(roster)
elif menu_selection == 4:
roster = edit_member(roster)
menu_selection = menu()
print("Exiting program")

您错过了一个空格,需要在namejerseynumber中添加空格

试试这个:

class TeamClass(object):
name = ""
jersey = ""
number = ""

最新更新