Como usar a função id() para verificar o endereço de memória de uma variável?
O Python gerencia a memória automaticamente, atribuindo endereços únicos a cada objeto criado. A função id()
permite acessar esse identificador para verificar onde um objeto está armazenado na memória.
Obtendo o endereço de memória de uma variável
x = 10
print(f"O endereço de memória de x é: {id(x)}")
Cada número inteiro pode compartilhar o mesmo identificador se for imutável e reutilizado internamente pelo Python.
Comparando endereços de memória
A função id()
também pode ser usada para verificar se duas variáveis apontam para o mesmo objeto na memória.
a = 100
b = 100
print(id(a) == id(b)) # Saída: True
Isso acontece porque Python reutiliza pequenos inteiros para otimizar a memória.
Endereços de memória em estruturas mutáveis
lista1 = [1, 2, 3]
lista2 = lista1
print(id(lista1) == id(lista2)) # Saída: True
lista2.append(4)
print(lista1) # Saída: [1, 2, 3, 4]
Aqui, lista1
e lista2
compartilham o mesmo endereço, pois lista2
é apenas uma referência ao mesmo objeto.
Por que verificar o endereço de memória de variáveis em Python?
A função id() é útil para entender a alocação de memória no Python e como objetos são gerenciados pelo interpretador.
Algumas aplicações:
- Depuração de código para verificar compartilhamento de objetos.
- Compreensão do gerenciamento de memória pelo Python.
- Evitar efeitos colaterais ao modificar objetos mutáveis.
- Otimização de desempenho e uso eficiente de recursos.
Dicas para quem está começando
- Use
id()
para entender a reutilização de objetos no Python. - Variáveis mutáveis compartilham o mesmo endereço se referenciadas diretamente.
- Para criar cópias independentes, utilize
copy.deepcopy()
para estruturas aninhadas. - Não confunda
id()
com ponteiros; no Python, o gerenciamento de memória é automático.
Contribuições de Pedro Vasconcellos