Objektide edastamine parameetritena Pythonis
Muutujad, mis sisaldavad objekte (loendid, hulgad, ennikud, sõnastikud), edastatakse funktsioonides viitega. Kirjutame koodi funktsioonis ümber nii, et esimene element edastatavas muutujas muutub hüüumärgiks. Ja allpool funktsiooni deklareerime muutuja, mille väärtuseks on loend:
def func(tst):
tst[0] = '!'
print(tst)
lst = [1, 2, 3, 4, 5]
Kuna loendeid edastatakse viitega, siis
funktsiooni väljakutsumisel muutub ka lst
väärtus globaalses ulatuses:
func(lst) # väljund on ['!', 2, 3, 4, 5]
print(lst) # väljund on ['!', 2, 3, 4, 5]
Milline on järgmise koodi täitmise tulemus:
def func(lst):
lst[0] = '!'
lst = [1, 2, 3, 4, 5]
func(lst)
print(lst)
Milline on järgmise koodi täitmise tulemus:
def func(lst):
lst[0] = '!'
lst = [1, 2, 3, 4, 5]
lst = func(lst)
print(lst)
Milline on järgmise koodi täitmise tulemus:
def func(lst):
lst = '!'
lst = [1, 2, 3, 4, 5]
func(lst[0])
print(lst)
Milline on järgmise koodi täitmise tulemus:
def func(dct):
for key in dct.keys():
dct[key] += 2
dct = {
'a': 1,
'b': 2,
'c': 3,
}
func(dct)
print(dct)