Ну, вы могли бы делать globals()['day%d' % n]()
, но это еще более ужасно и грязно.
Просто поместите функции в коллекцию. Например, список или диктовку, если вам нужны разреженные или нецелые ключи. day_funcs = [day0, day1, day, day3]
(day0
, вероятно, должен быть заполнителем, не вызываемый вызов работает, если вы проверяете ввод перед тем, как вслепую получить элемент и вызываете его - если нет, пользователь получает ужасную ошибку, которая кажется совершенно не связанной) * в диспетчере. Вы можете сделать это более СУХИМЫМ несколькими способами: тот, который требует последней типизации (но также не подходит для других схем именования), будет помещать функции (и только те) в отдельный модуль и, после их импорта, определив day_funcs = sorted(inspect.getmembers(the_module, isfunction))
.