Mainīgo nodošana pa referenci Python
Python mainīgie, kas satur sarežģītus objektus tiek nodoti pa referenci. Tas nozīmē, visas izmaiņas, kas veiktas vienā mainīgajā tiks atspoguļotas otrajā. Un lai gan ar šāda veida vērtību piešķiršanu palielinās kļūdu rašanās risks, taču ievērojami ietaupīti operētājsistēmas atmiņas resursi.
Pieņemsim, ka mums ir divi saraksti:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Tā kā mainīgajam lst2 tika piešķirta
vērtība lst1, tagad datora operatīvajā
atmiņā glabājas viens saraksts,
uz kuru vienlaikus norāda divi
mainīgie.
Mainīsim pirmo elementu lst2
un izvadīsim pirmo sarakstu konsolē:
lst2[0] = '!'
print(lst1) # izvadīs ['!', 2, 3, 4, 5]
Kāds būs šāda koda izpildes rezultāts:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Kāds būs šāda koda izpildes rezultāts:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Kāds būs šāda koda izpildes rezultāts:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)