Модуль operator
экспортирует набор эффективных функций, которые соответствуют внутренним операторам Python.
Например operator.add(x, y)
эквивалентен выражению x + y
.
Многие имена функций используются для специальных методов без двойного подчеркивания. Для обратной совместимости многие из них имеют вариант с сохранением двойного подчеркивания. Варианты без двойного подчеркивания предпочтительны для ясности.
Фрагмент кода показывает, как можно написать простой калькулятор при помощи модуля operator
.
import operator action = { "+": operator.add, "-": operator.sub, "/": operator.truediv, "*": operator.mul, "**": operator.pow } >>> action['-'](50, 25) # 25 >>> action['+'](50, 25) # 75 >>> action['/'](50, 25) # 2.0 >>> action['*'](50, 25) # 1250
При программировании на Python встречаются разные ситуации, когда работа с более или менее сложными структурами данных становится раздражающей. В стандартной библиотеке Python есть модуль operator, который помогает уменьшить это чувство.
Функции сравнения объектов полезны для всех объектов и названы в честь поддерживаемых операторов сравнения:
Логические операции также обычно применимы ко всем объектам и поддерживают тесты на истинность, тесты на идентичность и логические операции.
Арифметические и побитовые операторы для манипулирования числовыми значениями также поддерживаются и являются самыми многочисленными.
Функции для работы с последовательностями можно разделить на четыре группы: создание последовательностей, поиск элементов, доступ к содержимому и удаление элементов из последовательностей.
Многие операции в языке Python имеют версию "операций на месте". Ниже перечислены функции, обеспечивающие более простой доступ к операторам на месте, чем обычный синтаксис.
Геттеры особенно полезны при работе с итераторами или последовательностями генераторов, где они предназначены для быстрого извлечения полей аргументов из функций для map(), sorted(), itertools.groupby() или других функций, которые ожидают аргумент переданной функции.
Таблица, представленная в этом разделе показывает, как абстрактные операции соответствуют символам операторов в синтаксисе Python и функциям в модуле operator.