Mutável ou Imutável?
Em Python, os tipos de dados se dividem em duas categorias: mutáveis e imutáveis.
- Tipos mutáveis podem ser alterados após serem criados;
- Tipos imutáveis não podem ser alterados após a criação — qualquer "alteração" cria um novo objeto na memória.
Tipos Imutáveis
Tipos como int, float, str e tuple são imutáveis. Isso significa que, se você "alterar" uma variável que armazena um desses tipos, o Python na verdade cria um novo objeto internamente.
# Assign an integer value to var1 var1 = 40 print("var1 =", var1) # Output: var1 = 40 print("ID of var1:", id(var1)) # Shows the memory ID of the value 40 # Reassign a new integer value to var1 var1 = 50 print("var1 =", var1) # Output: var1 = 50 print("New ID of var1:", id(var1)) # Shows a different ID — it's a new object in memory
Mesmo reutilizando o mesmo nome de variável (var1
), a função id()
mostra que a variável está apontando para um objeto completamente novo após a reatribuição. Isso ocorre porque inteiros são imutáveis — eles não podem ser modificados no local.
Tipos Mutáveis
Por outro lado, tipos como list
e dict
são mutáveis. Eles podem ser alterados sem criar novos objetos.
Swipe to start coding
Imagine que você está gerenciando o orçamento de um pequeno projeto. Inicialmente, seu orçamento disponível é de $100. Posteriormente, você recebe um financiamento adicional de $50.
Sua tarefa é:
- Exibir o valor inicial de
project_budget
e seu ID de memória utilizando a funçãoid()
. - Atualizar o valor de
project_budget
para refletir o valor total. - Exibir o valor atualizado e seu novo ID.
Isso ajudará você a observar como tipos imutáveis como int
se comportam quando são reatribuídos.
Após concluir esta tarefa, clique no botão abaixo do código para verificar sua solução.
Solução
Obrigado pelo seu feedback!