Pripeljevanje spremenljivk po referenci v Pythonu
V Pythonu se spremenljivke, ki vsebujejo kompleksne objekte, pripeljejo po referenci. To pomeni, da se vse spremembe, narejene v eni spremenljivki, odrazijo na drugi. In čeprav se s to vrsto dodeljevanja vrednosti poveča tveganje za napake, se s tem znatno prihrani v sistemskem pomnilniku OS.
Recimo, da imamo dva seznama:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Ker smo spremenljivki lst2 dodelili
vrednost lst1, je zdaj v delovnem
pomnilniku računalnika shranjen en seznam,
na katerega hkrati kažeta dve
spremenljivki.
Spremenimo prvi element lst2
in izpišimo prvi seznam v konzolo:
lst2[0] = '!'
print(lst1) # izpiše ['!', 2, 3, 4, 5]
Kakšen bo rezultat izvajanja naslednje kode:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Kakšen bo rezultat izvajanja naslednje kode:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Kakšen bo rezultat izvajanja naslednje kode:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)