Python 3.5+operatorфункция
operator.imatmul
на месте (in-place)
In-place матричное умножение: a @= b (вызывает __imatmul__).
Синтаксис
operator.imatmul(a, b)
Встроенные типы не поддерживают @=: imatmul([1], [2]) поднимает TypeError. Смысл появляется у библиотечных массивов. Если в классе нет __imatmul__, вызов откатывается на __matmul__ и возвращает новый объект, а исходный не меняется, — поэтому, как и для неизменяемых типов, результат нужно присваивать.
Примеры
import operator
class M:
def __imatmul__(self, other): return 'imm'
print(operator.imatmul(M(), M())) # → imm
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности