Таинство стандартной библиотеки: модуль operator

Модуль operator содержит набор функций, соответствующих операторам Python.

Вот некоторые функции:

operator.add(a, b)  # суммирует два значения
operator.ne(a, b)  # то же, что и a!=b
operator.attrgetter('id') # возвращает ссылку, по которой можно получить атрибут "id"

Казалось бы, зачем нужны они? А ответ довольно прост - функциональное программирование с использованием итераторов иногда требует создания небольших функций для простых выражений. Иногда они могут быть выражены как лямбда-функции, но некоторые операции не обязательно реализовывать самостоятельно:

Код для Python 2:

>>> import operator
>>> a = [2, 3, 4, 5]
>>> reduce(lambda x, y: x + y, a)
14
>>> reduce(operator.add, a)
14

Ссылки для изучения:



Комментарии