У меня есть класс с несколькими методами для назначения атрибутов из пользовательского ввода и тремя методами, которые добавляют, удаляют или обновляют вложенный словарь с помощью ввода.Я хотел бы добавить функцию main_menu, чтобы пользователь мог получить доступ к методам добавления, удаления и обновления, а затем выбрать либо продолжить добавление / удаление / обновление словаря, либо вернуться в главное меню.
Когда я пытался сделать функцию main_menu, я получаю NameError: имя 'команда' не определено.Программа будет проходить, как и ожидалось, если main_menu не является функцией, но как только я попытался превратить ее в функцию, я получаю сообщение об ошибке.Я пробовал разные уровни отступов, но я новичок в Python и не знаю, что еще попробовать.
class MyClass:
def __init__(self):
self.x = 0
self.y = 0
self.z = 0
def get_x(self):
#code to get x from user input
def get_y(self):
#code to get y from user
def get_z(self):
#code to get z from user
def add_info(self):
store_info = {}
id = 0
while command = '1':
new_info = {}
new_id = len(store_info) + 1
store_info[new_id] = new_info
x = h.get_x()
new_info['x'] = x
y = h.get_y()
new_info['y'] = y
z = h.get_z()
new_info['z'] = z
print('Your info has been updated.\n', store_info)
choice = input('To add more info, type 1. To return to the main menu, type 2')
if choice == '1':
continue
elif choice == '2':
main_menu()
else:
print('The End')
break
def delete_info(self):
#code to delete, with an option at the end to return to main_menu
def update_info(self):
#code to update, with option for main_menu
def main_menu():
main_menu_option = """Type 1 to add.
Type 2 to delete.
Type 3 to update.
Type any other key to quit.\n"""
h = MyClass()
command = input(main_menu_option)
if command == '1':
h.add_info()
elif command == '2':
h.delete_info()
elif command == '3':
h.update_info()
else:
print('Good bye.')
main_menu()
Когда я запускаю программу, я получаю главное меню и набираю 1,но затем получите NameError для команды.Прежде чем я попытался сделать main_menu функцией, я мог получить доступ к методу add, чтобы добавить информацию во вложенный словарь.