partial фиксирует аргументы вызываемого объекта, а partialmethod предназначен для методов класса и сохраняет корректную привязку экземпляра через протокол дескрипторов.
Чем в Python functools.partial отличается от functools.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.