@maqstein
Python developer

Как вызвать функцию, используя регулярные выражения?

Есть большое количество функция, каждая из которых вызывается текстовой командой . Прописывать elif для каждой - не вариант, как можно реализовать вызов функции при отправке текстовой команды ?
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
@Zanak
Вопрос конечно улыбнул. :)
Но если серьезно, то польза регекспов здесь зависит от задачи. Если имена функций вводятся явно, и список параметров везде одинаков, то и регекспы не нужны.
Кроме предложенного решения влоб, со словарем, можно вспомнить про функции globals/locals.
Можно предложить заглянуть в sys.modules.
А еще можно вспомнить про либу importlib и функцию getattribute, если требуется подгружать функции из еще не импортированного модуля.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
longclaps
@longclaps
def foo():
    pass

def bar():
    pass

d = {'foo': foo, 'bar': bar}
cmd = 'foo'
d[cmd]()

ps А ты правда Python developer?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы