Junior — Middle
Como é que os objetos de tipos de dados modificáveis mudam quando são passados como argumentos para uma função?
sobes.tech IA
Resposta da IA
Em Python, objetos de tipos mutáveis (por exemplo, listas, dicionários, conjuntos) são passados para funções por referência ao objeto. Isso significa que, se dentro da função modificar o conteúdo do objeto (por exemplo, adicionar um elemento à lista), essas alterações serão visíveis também fora da função.
Exemplo:
def add_element(lst):
lst.append(10)
my_list = [1, 2, 3]
add_element(my_list)
print(my_list) # Vai mostrar: [1, 2, 3, 10]
No entanto, se dentro da função for atribuído um novo objeto ao parâmetro, isso não afetará o objeto externo:
def replace_list(lst):
lst = [4, 5, 6] # Cria um novo objeto, local para a função
my_list = [1, 2, 3]
replace_list(my_list)
print(my_list) # Vai mostrar: [1, 2, 3]
Assim, ao passar objetos mutáveis para uma função, é possível modificar seu conteúdo, e essas alterações persistirão fora da função.