Junior
Hoe worden argumenten aan een functie doorgegeven: per referentie of per waarde?
sobes.tech AI
Antwoord van AI
In Python worden argumenten niet precies per referentie of per waarde doorgegeven, maar via een mechanisme dat vaak "pass by object reference" of "pass by sharing" wordt genoemd.
Dit betekent het volgende:
- Bij het doorgeven van een argument aan een functie wordt een referentie naar het object doorgegeven.
- Als het object wijzigbaar is (bijvoorbeeld een lijst, woordenboek), dan zijn wijzigingen binnen de functie zichtbaar buiten de functie.
- Als het object niet wijzigbaar is (bijvoorbeeld een getal, string, tuple), wordt er bij poging tot wijziging binnen de functie een nieuw object gemaakt, en blijft het oorspronkelijke object buiten de functie ongewijzigd.
Wijzigbare objecten:
# Wijzigbaar object (lijst)
def modify_list(items):
items.append(4)
my_list = [1, 2, 3]
modify_list(my_list)
# my_list is nu [1, 2, 3, 4]
Onwijzigbare objecten:
# Onwijzigbaar object (nummer)
def modify_number(num):
num = num + 1
my_number = 5
modify_number(my_number)
# my_number blijft 5