Чем в Python functools.partial отличается от functools.partialmethod?

partial фиксирует аргументы вызываемого объекта, а partialmethod предназначен для методов класса и сохраняет корректную привязку экземпляра через протокол дескрипторов.

Короткий ответ

Что ответить на собеседовании

partial фиксирует аргументы вызываемого объекта, а partialmethod предназначен для методов класса и сохраняет корректную привязку экземпляра через протокол дескрипторов.

Подробный разбор

Ответ с пояснениями

partial фиксирует аргументы вызываемого объекта, а partialmethod предназначен для методов класса и сохраняет корректную привязку экземпляра через протокол дескрипторов.

Если метод принимает self, value, можно определить enable = partialmethod(set_enabled, True): вызов obj.enable() передаст obj как self, а True как value. Обычный partial в атрибуте класса не становится таким связанным методом автоматически. При этом partial от уже связанного obj.set_enabled вполне подходит для конкретного экземпляра. Выбор зависит от того, создаётся ли метод класса или отдельный callable.

Источник: docs.python.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее