Transmiterea obiectelor ca parametri în Python
Variabilele care conțin obiecte (liste, mulțimi, tuple, dicționare) în funcții sunt transmise prin referință. Să rescriem codul în funcție astfel încât primul element al variabilei transmise să se schimbe în semnul exclamării. Și mai jos de funcție să declarăm o variabilă a cărei valoare este o listă:
def func(tst):
tst[0] = '!'
print(tst)
lst = [1, 2, 3, 4, 5]
Deoarece listele sunt transmise prin referință, la
apelarea funcției se va schimba și valoarea lst
în domeniul global de vizibilitate:
func(lst) # va afișa ['!', 2, 3, 4, 5]
print(lst) # va afișa ['!', 2, 3, 4, 5]
Care va fi rezultatul executării următorului cod:
def func(lst):
lst[0] = '!'
lst = [1, 2, 3, 4, 5]
func(lst)
print(lst)
Care va fi rezultatul executării următorului cod:
def func(lst):
lst[0] = '!'
lst = [1, 2, 3, 4, 5]
lst = func(lst)
print(lst)
Care va fi rezultatul executării următorului cod:
def func(lst):
lst = '!'
lst = [1, 2, 3, 4, 5]
func(lst[0])
print(lst)
Care va fi rezultatul executării următorului cod:
def func(dct):
for key in dct.keys():
dct[key] += 2
dct = {
'a': 1,
'b': 2,
'c': 3,
}
func(dct)
print(dct)