Sobes.tech
Middle

Worden parameters in Python doorgegeven op waarde of door verwijzing?

sobes.tech AI

Antwoord van AI

In Python worden parameters doorgegeven via een verwijzing naar het object (pass-by-object-reference). Dit betekent dat de functie een verwijzing naar het object ontvangt, niet een kopie van de waarde. Het gedrag hangt echter af van de mutabiliteit van het object:

  • Voor mutable objecten (bijvoorbeeld lijsten, woordenboeken) worden wijzigingen binnen de functie weerspiegeld op het oorspronkelijke object.
  • Voor immutable objecten (bijvoorbeeld getallen, strings, tuples) creëren pogingen om het object binnen de functie te wijzigen een nieuw object, terwijl het originele object onveranderd blijft.

Voorbeeld:

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

Dus, men kan zeggen dat parameters door verwijzing worden doorgegeven, maar het gedrag lijkt op doorgeven op waarde voor immutable objecten.