замена new.function для Python 3 - PullRequest
       10

замена new.function для Python 3

2 голосов
/ 25 февраля 2012

У меня есть некоторый существующий код, который я портирую на Python 3. Этот код создает объект функции python из объекта кода python и список аргументов по умолчанию с использованием нового модуля следующим образом:

my_function = new.function( code_object, globals(), None, default_values );

В результате появилась новая функция, которую я могу безнаказанно вызывать:

fn_result = my_function( my_args, **my_keyargs );

Поскольку «новый» модуль устарел, я не могу использовать его в Python3.Кроме того, мне нужно решение, которое начинается с объекта кода, потому что я храню объект кода вне кода Python (длинное объяснение причин).

1 Ответ

2 голосов
/ 25 февраля 2012

Вместо этого вы используете types.FunctionType, как указано в new модулях официальной документации . Это работает и в Python 2.

...