Kintamųjų perdavimas nuoroda Python kalboje
Python kalboje kintamieji, kuriuose yra sudėtingi objektai, perduodami nuoroda. Tai reiškia, visi pakeitimai, atlikti viename kintamajame, atsispindės antrajame. Ir nors su tokiu reikšmių priskyrimo tipu padidėja klaidų atsiradimo rizika, tačiau žymiai taupomi operacinės sistemos sistemos atminties ištekliai.
Tarkime, kad turime du sąrašus:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Kadangi kintamajam lst2 buvo priskirta
reikšmė lst1, dabar operatyviojoje
kompiuterio atmintyje saugomas vienas sąrašas,
į kurį vienu metu nuorodomis rodo du
kintamieji.
Pakeiskime pirmąjį lst2 elementą
ir išveskime pirmąjį sąrašą į konsolę:
lst2[0] = '!'
print(lst1) # išves ['!', 2, 3, 4, 5]
Koks bus šio kodo vykdymo rezultatas:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Koks bus šio kodo vykdymo rezultatas:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Koks bus šio kodo vykdymo rezultatas:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)