Использование partial function python

В библиотеке functools представлен мощный инструмент partial с одним из вариантов использования которого я хочу разобраться.

functools.partial возвращает partial объект, который содержит 3 ридонли атрибута: func (объект или функцию), args (позиционные аргументы), keywords (именованный аргументы); при вызове, этот объект будет вести себя, как func, вызываемый с позиционными аргументами и именованными.

functools.partial можно использоваться для создания новых производных функций, которым предварительно установлены некоторые входные параметры.

Простой пример, в коде нужно отфильтровать числа меньше чем, например, где-то 10, а где-то 0.
Можно сделать так:

Обстоятельства меняются и в коде приходится сталкиваться, например, с фильтром по значениям, которые устанавливает пользователь; и здесь нам нужно преобразовать код так, что бы не загромождать его и передать необходимое для фильтрации значение, поможет в этом functools.partial

С помощью partial мы передаем значения min_val, получается, что код мы переиспользуем тот же, особого загромождения не происходит; работает это как с именованными, так и с позиционными аргументами. При этом метаданные функции сохраняются и мы можем их посмотреть.

Пример, с позиционными аргументами

functools.partial позволяет удалить избыточный код и повысить возможность его повторного использования.