Sobes.tech
Junior

Comment les arguments sont-ils passés à une fonction : par référence ou par valeur?

sobes.tech IA

Réponse de l'IA

En Python, les arguments ne sont pas passés exactement par référence ni exactement par valeur, mais par un mécanisme souvent appelé "passage par référence d'objet" ou "passage par partage".

Cela signifie ce qui suit :

  • Lorsqu'un argument est passé à une fonction, une référence à l'objet est transmise.
  • Si l'objet est mutable (par exemple, une liste, un dictionnaire), les modifications à l'intérieur de la fonction seront visibles en dehors.
  • Si l'objet est immuable (par exemple, un nombre, une chaîne, un tuple), une nouvelle instance sera créée si vous essayez de le modifier, et l'objet original en dehors de la fonction restera inchangé.

Objets mutables :

# Objet mutable (liste)
def modify_list(items):
    items.append(4)

my_list = [1, 2, 3]
modify_list(my_list)
# my_list est maintenant [1, 2, 3, 4]

Objets immuables :

# Objet immuable (nombre)
def modify_number(num):
    num = num + 1

my_number = 5
modify_number(my_number)
# my_number reste 5