@vvrider
Ikeya TK

Как сделать Callable функцию из json?

Как сделать Callable функцию из json?
В данный момент реализовано в таком виде :
def _display_help ():
...

commands = {
"help": _display_help,
}
func = commands.get("help")

Список commands стал довольно таки большой и хотел импортировать json через json.loads
Но так как данный вид json не валидный , должно быть "help": "_display_help"

String is not callable object -> вполне очевидно

Пока практического опыта маловато, хотел бы узнать как без костылей это можно реализовать?

Спасибо
  • Вопрос задан
  • 222 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Eugen_p
Посмотрите в сторону модуля ast. Есть еще встроенная функция eval, но использовать ее не очень хорошо
Ответ написан
@maxfox
Правильный вариант:
1. Сделать декоратор, регистрирующий функцию с нужным именем в специальном словаре. (вроде @app.route в Flask)
2. Написать нужные функции, зарегистрировать их с помощью этого декоратора.
3. Вызывать функции из словаря по ключу-строке.
Ответ написан
Ваш ответ на вопрос

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

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