Как динамически создать объект функции в Python без использования compile(), exec() или лямбда-выраженийPython

Программы на Python
Anonymous
Как динамически создать объект функции в Python без использования compile(), exec() или лямбда-выражений

Сообщение Anonymous »

Я пытался динамически создавать и изменять функцию в Python. Я исследовал Интернет и Stack Overflow, но большинство решений, которые я вижу, используют одно из следующих решений, которые мне не нужны: Например, у меня есть следующий код:s
[*]замыкания и вложенные функции

Например, у меня есть следующий код:

Код: Выделить всё

def func(a, b, c):
return all([a, b, c])
и я хочу изменить его на:

Код: Выделить всё

def func2(a, b, c):
return any([a, b, c])
Однако по некоторым причинам мне не разрешено изменять код функции напрямую. Я ищу способ каким-то образом изменить байт-коды атрибута функции __code__ или динамически создать новый объект функции с помощью какого-либо создателя функций. Есть ли способ сделать это? Я ищу что-то вроде чередования байтов кода или решение, связанное с AST. Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/787 ... -compile-e

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