Извините, если этот вопрос уже поднят и ответил. То, что мне нужно сделать, очень просто в концепции, но, к сожалению, я не смог найти ответ для него в Интернете.
Мне нужно создать динамические функции в Python (Python2.7) с пользовательскими именами во время выполнения. Тело каждой функции также должно быть сконструировано во время выполнения, но оно (почти) одинаково для всех функций.
Я начинаю со списком имен.
func_names = ["func1", "func2", "func3"]
Обратите внимание, что список func_name может содержать список произвольных имен, поэтому имена НЕ будут просто func1, func2, func3,....
Я хочу, чтобы результат был следующим:
def func1(*args):
...
def func2(*args):
...
def func3(*args):
...
Причина, по которой мне нужно сделать это, - это то, что каждое имя функции соответствует тестовому примеру, который затем вызывается из внешнего мира.
update. Пользователь не вводит пользователя. Я связываю два конца гораздо большего модуля. Один конец определяет, какие тестовые примеры и между прочим, заполняет список имен тестовых случаев. Другой конец - это сами функции, которые должны иметь отображение 1:1 с именем тестового примера. Поэтому у меня есть имя тестовых примеров, я знаю, что я хочу делать с каждым тестовым случаем, мне просто нужно создать функции, которые имеют название тестовых случаев. Поскольку имя тестовых примеров определяется во время выполнения, создание функции на основе этих тестовых случаев должно быть также во время выполнения.
update. Я также могу обернуть эти пользовательские именованные функции в классе, если это упростит работу.
Я могу жестко закодировать содержимое функций (так как они почти одинаковы) в строке, или я могу основать его на ранее определенном базовом классе. Просто нужно знать, как заполнять функции этим контентом.
Например:
func_content = """
for arg in args:
print arg
"""
Спасибо заранее,
Махди