Witam, muszę napisać program na zaliczenie z programowania obietkowego w pythonie 3.
Prawie go skończyłem, ale pojawia się problem.
Gdy program wczytywał od użytkownika 2 informacje wszystko działało. Gdy dodałem opcje "Time" nagle rozsypało się zapisywanie wszystkiego w słowniku.
Ktoś może pomóc ?
class MenuCommand:
def description(self):
raise NotImplementedError
def execute(self):
raise NotImplementedError
class ExitCommand(MenuCommand):
def __init__(self, menu):
self._menu = menu
def description(self):
return "Exit"
def execute(self):
self._menu.stop()
class AddEventCommand(MenuCommand):
def __init__(self, calendar):
self._calendar = calendar
def description(self):
return "New event"
def execute(self):
title = input("Title: ")
date = input("Date (DD.MM.YYYY): ")
time = input("Time (HH:MM): ")
self._calendar[title, date] = time
class ListAllCommand(MenuCommand):
def __init__(self, calendar):
self._calendar = calendar
def description(self):
return "List calendar"
def execute(self):
for title, date, time in self. _calendar.items():
print(f"{title} - {date} - {time}")
class Menu:
def __init__(self):
self._commands = []
self._should_running = True
def add_command(self,cmd):
self._commands.append(cmd)
def run(self):
while self._should_running:
self._display_menu()
self._execute_selected_command()
def stop(self):
self._should_running = False
def _display_menu(self):
for i, cmd in enumerate(self._commands):
print("{}. {}".format(i + 1,cmd.description()))
def _execute_selected_command(self):
cmd_num = int(input("Select menu item (1-{}): " .format(len(self._commands))))
cmd = self._commands[cmd_num - 1]
cmd.execute()
def main():
calendar = []
menu = Menu()
add_cmd = AddEventCommand(calendar)
menu.add_command(add_cmd)
list_all_cmd = ListAllCommand(calendar)
menu.add_command(list_all_cmd)
exit_cmd=ExitCommand(menu)
menu.add_command(exit_cmd)
menu.run()
main()