Создание динамических функций Python с собственными именамиPython

Программы на Python
Ответить
Anonymous
 Создание динамических функций Python с собственными именами

Сообщение Anonymous »

То, что мне нужно сделать, по своей сути очень просто, но, к сожалению, я не смог найти на него ответ в Интернете.
Мне нужно создавать динамические функции в Python (2.7) с произвольными именами во время выполнения. Тело каждой функции также необходимо создавать во время выполнения, но оно (почти) одинаково для всех функций.
Я начинаю со списка имен.
func_names = ["func1", "func2", "func3"]

Обратите внимание, что список func_name может содержать список произвольных имен, поэтому имена не будут просто func1, func2, func3, ...
Я хочу, чтобы результат был следующим:
def func1(*args):
...

def func2(*args):
...

def func3(*args):
...

Мне нужно это сделать, потому что каждое имя функции соответствует тестовому примеру, который затем вызывается из внешнего мира.
Пользовательский ввод не требуется. Я связываю два конца гораздо большего модуля. Один конец определяет, что представляют собой тестовые примеры, и, помимо прочего, заполняет список имен тестовых примеров. Другой конец — это сами функции, которые должны иметь соответствие 1:1 с именем тестового примера. Итак, у меня есть имена тестовых примеров, я знаю, что хочу делать с каждым тестовым примером, мне просто нужно создать функции, имеющие имена тестовых примеров. Поскольку имена тестовых примеров определяются во время выполнения, создание функций на основе этих тестовых примеров также должно происходить во время выполнения.
Я также могу обернуть эти пользовательские именованные функции в класс, если это упростит задачу.
Я могу жестко запрограммировать содержимое функций (поскольку они почти одинаковы) в строке или основать его на основе ранее определенного базового класса. Просто нужно знать, как заполнить функции этим содержимым.
Например:
func_content = """
for arg in args:
print arg
"""


Подробнее здесь: https://stackoverflow.com/questions/131 ... stom-names
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»