Middle
Os parâmetros em Python são passados por valor ou por referência?
sobes.tech IA
Resposta da IA
Em Python, os parâmetros são passados por referência ao objeto (pass-by-object-reference). Isto significa que a função recebe uma referência ao objeto, não uma cópia do valor. No entanto, o comportamento depende da mutabilidade do objeto:
- Para objetos mutáveis (por exemplo, listas, dicionários), as alterações dentro da função refletem-se no objeto original.
- Para objetos imutáveis (por exemplo, números, strings, tuplos), quaisquer tentativas de modificar o objeto dentro da função criam um novo objeto, deixando o original inalterado.
Exemplo:
def modify_list(lst):
lst.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
print(my_list) # [1, 2, 3, 4]
def modify_int(x):
x += 1
num = 5
modify_int(num)
print(num) # 5
Assim, pode-se dizer que os parâmetros são passados por referência, mas o comportamento é semelhante ao de passar por valor para objetos imutáveis.