Загружаем изображение…

Знаете, что можно передавать вызов методов как функцию — без лямбд?



Обычно для таких задач пишут lambda, что добавляет лишний синтаксис:
list(map(lambda x: x.upper(), users))

operator.methodcaller создаёт callable, который вызывает указанный метод у каждого элемента:
methodcaller("upper")

Это удобно, когда нужно передать вызов метода в map, sorted или другие pipeline-API:
sorted(users, key=methodcaller("lower"))

Можно передавать аргументы метода и код остаётся декларативным:
methodcaller("replace", "a", "x")

methodcaller — полезный инструмент, когда нужен callable для вызова метода. Не замена всем lambda, но в таких местах код может стать чище и короче.

Python Ready | #совет
Просмотры: 181
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти