Reatribuição¶
Como mencionamos anteriormente, é válido realizar mais de uma atribuição à mesma variável. Uma nova atribução faz com que uma variável existente referencie um novo valor (e deixe de referenciar o valor anterior).
Na primeira vez em que bruce
é exibido, seu valor é 5. Já na segunda vez, seu valor é 7.
O comando de atribuição altera o valor (objeto) ao qual bruce
se refere.
Aqui está como uma reatribuição se parece em um diagrama de referência:

É importante observar que na matemática, uma igualdade é sempre verdadeira. Se a é igual a b
agora, então a sempre será igual a b
. Em Python, um comando de atribuição pode fazer com que
duas variáveis referenciem o mesmo objeto, e portanto tenham o mesmo valor. Elas parecem ser iguais. Porém, devido à possibilidade de reatribuição,
elas não precisam permanecer dessa forma:
A linha 4 muda o valor de a
mas não muda o valor de
b
, portanto elas não são mais iguais. Mais tarde falaremos muito mais sobre o conceito de igualdade.
Note
Em algumas linguagens de programação, um símbolo
diferente é usado para atribuição, como <-
ou :=
. A intenção é
que isso ajudará a evitar confusão. Python decidiu usar os símbolos
=
para atribuição e ==
para igualdade. Essa é uma escolha popular
também encontrada em linguagens como C, C++, Java, e C#.
Teste seu entendimento
- x é 15 e y é 15
- Veja o último comando de atribuição, que dá um valor diferente a x.
- x é 22 e y é 22
- Não, x e y são duas variáveis separadas. Apenas porque x muda no último comando de atribuição, não significa que o valor copiado para y na segunda atribuição tenha que mudar.
- x é 15 e y é 22
- Veja o último comando de atribuição, que reatribui x, e não y.
- x é 22 e y é 15
- Sim, x tem o valor 22 e y tem o valor 15.
data-10-1: Depois dos seguintes comandos, quais são os valores de x e y?
x = 15
y = x
x = 22