Многие операции в языке 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']