@= Atribuição de multiplicação de matrizes
Última atualização: 2026-09-22
@= Atribuição de multiplicação de matrizes
@= realiza uma multiplicação de matrizes no lugar entre a variável da esquerda e o valor à direita, equivalente a x = x @ y.
| Categoria | Operadores |
|---|---|
| Tipo | Operador |
📝 Sintaxe
x @= y
▶ Exemplo
Edite o código, clique em Executar e veja o resultado no painel de saída:
Saída:
[[19, 22], [43, 50]]
ℹ️ Informação @= requer uma biblioteca como numpy para multiplicação de matrizes; os tipos embutidos não definem essa operação.
💡 Casos relacionados
Mais estudos de caso em breve — aguarde.
❓ Perguntas frequentes
QQual ambiente o `@=` exige?
AO objeto deve implementar `__imatmul__` ou `__matmul__`, tipicamente com NumPy: `a @= b` faz uma multiplicação de matrizes in-place em arrays. `list` e `int` embutidos não suportam e geram `TypeError`.
QHá diferença entre @= e a = a @ b?
A`@=` primeiro tenta `__imatmul__` para uma operação in-place (arrays do NumPy são modificados in-place); se não houver `__imatmul__`, ele recorre a `a = a @ b`. Os resultados geralmente são os mesmos, mas o `id` do objeto pode diferir.
QPosso usar @= sem instalar o NumPy?
ASim. Uma classe personalizada que implementa `__imatmul__` (ou `__matmul__`) suporta `@=`; `list` e `int` embutidos não têm essa implementação, então geram `TypeError`.