Возможно ли запустив скрипт не выполнять функции в значении ключей объекта?

Можно ли при запуске скрипта сделать так, чтобы функции в значении ключей не выполнялись? Код такой:

my_dict = {
  'case_1': print(1),
  'case_2': print(2)
}

Есть ли способ запустить такой файл без исполнения функции print? Хочу вызывать эти функции позже в данном файле вот так:

for i in range(len(my_dict)):
  current_case = detect_case()
  my_dict[current _case]

Заранее спасибо!


Ответы (1 шт):

Автор решения: Evrik

Можно использовать lambda-функции

my_dict = {
    'case_1': lambda: print(1),
    'case_2': lambda: print(2)
}

for i in range(len(my_dict)):
    current_case = detect_case()
    my_dict[current_case]()

Обратите внимание на скобки после выбора элемента словаря. Они необходимы для выполнения функции.

→ Ссылка