Överföra objekt som parametrar i Python
Variabler som innehåller objekt (listor, mängder, tupler, ordböcker) i funktioner överförs via referens. Låt oss skriva om koden i funktionen så att det första elementet i den överförda variabeln ändras till ett utropstecken. Och under funktionen deklarerar vi en variabel vars värde är en lista:
def func(tst):
tst[0] = '!'
print(tst)
lst = [1, 2, 3, 4, 5]
Eftersom listor överförs via referens, när
funktionen anropas kommer värdet på lst
i det globala scopet också att ändras:
func(lst) # kommer att skriva ut ['!', 2, 3, 4, 5]
print(lst) # kommer att skriva ut ['!', 2, 3, 4, 5]
Vad blir resultatet av följande kod:
def func(lst):
lst[0] = '!'
lst = [1, 2, 3, 4, 5]
func(lst)
print(lst)
Vad blir resultatet av följande kod:
def func(lst):
lst[0] = '!'
lst = [1, 2, 3, 4, 5]
lst = func(lst)
print(lst)
Vad blir resultatet av följande kod:
def func(lst):
lst = '!'
lst = [1, 2, 3, 4, 5]
func(lst[0])
print(lst)
Vad blir resultatet av följande kod:
def func(dct):
for key in dct.keys():
dct[key] += 2
dct = {
'a': 1,
'b': 2,
'c': 3,
}
func(dct)
print(dct)