@VuztreeCalan
Дилетант Широкого Профиля

Как сделать выполнение функции по ключу из словаря Python 3?

Есть словарь, в котором каждый ключ - буква, а каждое значение - функция. У пользователя запрашивается буква, как выполнить ту функцию, которая соответствует введённой букве?

Пример неработающего кода:
def main():
    while True:
        key = str(input("Press R to read a file\nPress E to enter data\nPress L to leave the program\n"))
        key = key.lower()
        execute(key)

def execute(command):
    return {
        'r' : readfile(),
        'e' : enterdata(),
        'l' : exit()
    }.get(command, "Command not found")

def readfile():
    #Действия

def enterdata():
    #Действия

def exit():
    #Действия

main()

Если я правильно понял, здесь код возвращает весь список, поэтому результатом выполнения будет то что все функции действуют по очереди.
  • Вопрос задан
  • 2197 просмотров
Решения вопроса 1
@VuztreeCalan Автор вопроса
Дилетант Широкого Профиля
UPD: Ура, решено! Пришлось подолбиться головой, но получилось изящно

def main():
    while True:
        key = str(input("Press R to read a file\nPress E to enter data\nPress L to leave the program\n"))
        key = key.lower()
        execute(key)


def readfile():
    #Действия


def enterdata():
    #Действия


dictOfCommands = {
    'r': readfile,
    'e': enterdata,
    'l': exit
}


def execute(command):
    dictOfCommands[command]()


main()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы