Muutujate edastamine viidete kaudu Pythonis
Pythonis muutujad, mis sisaldavad keerukaid objekte, edastatakse viidete kaudu. See tähendab, kõik muutused, mis tehakse ühes muutujas, kajastuvad teises. Ja kuigi sellise väärtuste omistamise tüübi puhul suureneb vea tekkimise risk, säästab see oluliselt süsteemi mälu ressursse.
Oletame, et meil on kaks listi:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Kuna muutujale lst2 omistati
väärtus lst1, siis nüüd on arvuti
operatiivmälus salvestatud üks list,
millele kaks muutujat korraga viitavad.
Muudame lst2 esimest elementi
ja väljastame esimese listi konsooli:
lst2[0] = '!'
print(lst1) # väljastab ['!', 2, 3, 4, 5]
Milline on järgmise koodi täitmise tulemus:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Milline on järgmise koodi täitmise tulemus:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Milline on järgmise koodi täitmise tulemus:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)