Форум сайта python.su
0
Добрый рабочий. Не знаю как реализовать одну штуку. Надо чтобы по значению переменной, использовалась та или иная функция. например если переменная b = 1, то используется функция Quest_1, а если значение переменной b = 5, то используется функция Quest_5. Как реализовать?
Офлайн
72
Как обычно:
def Quest_1(): print('Выполняем функцию "Quest_1"') def Quest_2(): print('Выполняем функцию "Quest_2"') def Quest_3(): print('Выполняем функцию "Quest_3"') def Quest_4(): print('Выполняем функцию "Quest_4"') def Quest_5(): print('Выполняем функцию "Quest_5"') b = 5 #меняем значения переменной if b == 1: Quest_1() elif b == 2: Quest_2() elif b == 3: Quest_3() elif b == 4: Quest_4() elif b == 5: Quest_5() else: print('Нет такой функции')
Офлайн
0
Спасибо конечно, весьма оригинально. Но у меня таких функций 58 и хотелось бы узнать, существует ли более оптимальный и сжатый вариант?
Офлайн
186
s = { 1: Quest_1, 2: Quest_2, 3: Quest_3, ..... } res = s[b]()
Офлайн
857
>>> def quest_1(): ... print('выполняем функцию "quest_1"') ... >>> def quest_2(): ... print('выполняем функцию "quest_2"') ... >>> def quest_3(): ... print('выполняем функцию "quest_3"') ... >>> def quest_4(): ... print('выполняем функцию "quest_4"') ... >>> def quest_5(): ... print('выполняем функцию "quest_5"') ... >>> funcs = (quest_1, quest_2, quest_3, quest_4, quest_5) >>> >>> for i in range(5): ... funcs[i]() ... выполняем функцию "quest_1" выполняем функцию "quest_2" выполняем функцию "quest_3" выполняем функцию "quest_4" выполняем функцию "quest_5" >>>
Офлайн
0
Спасибо!
Офлайн