Сообщить об ошибке.

Функции операций на месте модуля operator в Python

Функции, поддерживающие операции на месте

Многие операции в языке Python имеют версию "операций на месте". Ниже перечислены функции, обеспечивающие более простой доступ к операторам на месте, чем обычный синтаксис.

Обратите внимание, что когда вызывается функция "на месте", вычисление и назначение выполняются в два отдельных этапа. Перечисленные ниже "функции на месте" выполняют только первый шаг, вызывая метод на месте. Второй шаг не обрабатывается.

Для неизменяемых типов, таких как строки, числа и кортежи, обновленное значение вычисляется, но не присваивается обратно входной переменной:

>>> import operator
>>> a = 'hello'
>>> operator.iadd(a, ' world')
# 'hello world'
>>> a
# 'hello'

Для изменяемых целей, таких как списки и словари, метод на месте выполнит обновление, поэтому последующее назначение не требуется:

>>> import operator
>>> s = ['h', 'e', 'l', 'l', 'o']
>>> operator.iadd(s, [' ', 'w', 'o', 'r', 'l', 'd'])
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> s
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

operator.iadd(a, b)
operator.__iadd__(a, b):

Функция эквивалентна выражению a += b.

operator.iand(a, b)
operator.__iand__(a, b):

Функция эквивалентна выражению a &= b

operator.iconcat(a, b)
operator.__iconcat__(a, b):

Функция эквивалентна выражению a += b для последовательностей a и b.

operator.ifloordiv(a, b)
operator.__ifloordiv__(a, b):

Функция эквивалентна выражению a //= b.

operator.ilshift(a, b)
operator.__ilshift__(a, b):

Функция эквивалентна выражению a <<= b.

operator.imod(a, b)
operator.__imod__(a, b):

Функция эквивалентна выражению a %= b.

operator.imul(a, b)
operator.__imul__(a, b):

Функция эквивалентна выражению a *= b.

operator.imatmul(a, b)
operator.__imatmul__(a, b):

Функция эквивалентна выражению a @= b.

operator.ior(a, b)
operator.__ior__(a, b):

Функция эквивалентна выражению a |= b.

operator.ipow(a, b)
operator.__ipow__(a, b):

Функция эквивалентна выражению a **= b.

operator.irshift(a, b)
operator.__irshift__(a, b):

Функция эквивалентна выражению a >>= b.

operator.isub(a, b)
operator.__isub__(a, b):

Функция эквивалентна выражению a -= b.

operator.itruediv(a, b)
operator.__itruediv__(a, b):

Функция эквивалентна выражению a /= b.

operator.ixor(a, b)
operator.__ixor__(a, b):

Функция эквивалентна выражению a ^= b.

Примеры использования функций операций на месте.

from operator import *

a = -1
b = 5.0
c = [1, 2, 3]
d = ['a', 'b', 'c']

a = iadd(a, b)
print('a = iadd(a, b) =>', a)

c = iconcat(c, d)
print('c = iconcat(c, d) =>', c)

# a = iadd(a, b) => 4.0
# c = iconcat(c, d) => [1, 2, 3, 'a', 'b', 'c']