Passagem de variáveis por referência em Python
Em Python, variáveis que contêm objetos complexos são passadas por referência. Isso significa que todas as alterações feitas em uma variável serão refletidas na segunda. E embora esse tipo de atribuição de valores aumente o risco de erros, economiza significativamente os recursos de memória do sistema operacional.
Suponha que temos duas listas:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Como à variável lst2 foi atribuído o
valor de lst1, agora na memória RAM
do computador está armazenada uma única lista,
referenciada simultaneamente por duas
variáveis.
Vamos alterar o primeiro elemento de lst2
e imprimir a primeira lista no console:
lst2[0] = '!'
print(lst1) # exibirá ['!', 2, 3, 4, 5]
Qual será o resultado da execução do seguinte código:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Qual será o resultado da execução do seguinte código:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Qual será o resultado da execução do seguinte código:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)