Sobes.tech
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.