Как динамически создать объект функции в 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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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