Sobes.tech
Middle

Les paramètres en Python sont-ils passés par valeur ou par référence?

sobes.tech IA

Réponse de l'IA

En Python, les paramètres sont passés par référence à l'objet (pass-by-object-reference). Cela signifie que la fonction reçoit une référence à l'objet, et non une copie de la valeur. Cependant, le comportement dépend de la mutabilité de l'objet :

  • Pour les objets mutables (par exemple, listes, dictionnaires), les modifications effectuées dans la fonction se reflètent sur l'objet d'origine.
  • Pour les objets immuables (par exemple, nombres, chaînes, tuples), toute tentative de modifier l'objet dans la fonction crée un nouvel objet, laissant l'original inchangé.

Exemple :

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

Ainsi, on peut dire que les paramètres sont passés par référence, mais le comportement ressemble à un passage par valeur pour les objets immuables.