Python 2 doc говорит:
устарело с версии 2.3: использовать функцию (* аргументы, ** ключевые слова) вместо применения (функция,аргументы, ключевые слова) (см. Распаковка списков аргументов). Для модуля
Pickle требуется следующий синтаксис для определения __reduce__
метода для выгрузки объекта:
def __reduce__():
return (<A callable object>, <A tuple of arguments for the callable object.>)
(я знаю, что длина кортежа, возвращаемого из __reduce__
, может быть> 2, но должна быть <= 5. Рассматривая случай длины 2 в контексте текущего вопроса.) </em>
Это означает, что невозможно передать аргументы ключевого слова в вызываемый объект.В Python 2 у меня есть следующий обходной путь:
def __reduce__():
return (apply, (<A callable object>, ((<args>,), <kwargs>))
Однако builtins.apply
был удален в Python 3 .Есть ли другая альтернатива реализации моей собственной версии builtins.apply
в Python 3 ?