Травление аргументов ключевых слов в Python 3 - PullRequest
0 голосов
/ 21 февраля 2019

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 ?

...