@KurimuzonAkuma

Как можно сократить if — elseif конструкцию?

Допустим, есть конструкция по типу:
if answer == '1':
    func1()
elif answer == '2' or answer == '3':
    func2()
elif answer == '4' and another_answer == '5':
    func3()
    func4()

Есть ли способы сократить такое? Пытался найти что-то, но безуспешно
  • Вопрос задан
  • 157 просмотров
Решения вопроса 2
samodum
@samodum
Какой вопрос - такой и ответ
Сократить нельзя, т.к. в любом случае останется три блока действий.
Ответ написан
@kalterfad
С целью избавления от длинных блоков if else, как было указано выше, можно использовать словари.

def fun_one():
    print('do something')

choice_dict = {
'1': fun_one
}

answer = '1'

if answer in choice_dict:
    test = choice_dict[answer]
    test()
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@anerev
Можно использовать словарь с ключем равным ответу и значение с функцией, я правда не знаю насколько такое решение верно
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы