functools.partial заранее связывает часть аргументов и возвращает вызываемый объект. Сохранённые именованные аргументы работают как значения по умолчанию: при вызове их можно переопределить. Проверки новой сигнатуры при этом нет, поэтому повторная передача одного параметра закончится TypeError.Разница с
lambda проявляется во времени связывания. Лямбда получает текущее значение имени при выполнении, а partial сохраняет переданный объект при создании. Но копии не делает: изменения связанного списка будут видны, а долгоживущий колбэк удержит контекст в памяти.Сравнение двух способов специализации функций сводится к питоничному правилу: если нужно только связать аргументы, подходит
partial. Если адаптер проверяет данные, логирует или преобразует аргументы, яснее написать именованную функцию через def.