types.MethodType vs functools.partial - PullRequest
       2

types.MethodType vs functools.partial

2 голосов
/ 09 октября 2011

Это продолжение моего другого вопроса ( закрытие питона + уп ). В ответ на этот вопрос Уинстон Эверт предложил мне использовать functools.partial вместо types.MethodType.

Итак, теперь мой вопрос: в чем разница между ними? Почему метод functool считается лучшим?

пс. Мне удалось использовать functools.partial для моего закрытия, и это было круто. : -)

1 Ответ

3 голосов
/ 09 октября 2011

С практической точки зрения, нет большой разницы.Partial будет отображать любое количество аргументов (в данном случае 1);метод instance передаст собственный экземпляр (каким бы он ни был) в упакованную функцию;Они делают одно и то же!

Разница в том, что они несколько документируют себя;В вашем связанном вопросе;вызываемый closure не является методом чего-либо;это обычная функция, возвращаемая методом A;Бывает, что тело видит в качестве первого аргумента экземпляр B;но этого недостаточно, чтобы сделать его «методом» из B.

Так что это просто вопрос стиля.Вы делаете что-то, что больше похоже на functools.partial, и поэтому вы должны использовать это, даже если вы можете достичь того же эффекта с types.MethodType

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...