Pythonda o'zgaruvchilarni havola orqali uzatish
Pythonda murakkab obyektlarni o'z ichiga olgan o'zgaruvchilar havola orqali uzatiladi. Bu shuni anglatadiki, bitta o'zgaruvchida qilingan barcha o'zgarishlar ikkinchisida akslanadi. Va bu turdagi qiymatlar tayinlashda xatolik paydo bo'lish xaviri ortgan bo'lsa-da, tizim xotirasining resurslari sezilarli darajada tejab qolinadi.
Bizda ikkita ro'yxat bor deylik:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2 o'zgaruvchisiga
lst1 qiymati tayinlanganligi sababli,
endi kompyuter operativ xotirasida
bitta ro'yxat saqlanadi,
unga ikkita o'zgaruvchi bir vaqtning o'zida
havola qiladi.
Keling lst2 ning birinchi elementini o'zgartiramiz
va birinchi ro'yxatni konsolga chiqaramiz:
lst2[0] = '!'
print(lst1) # ['!', 2, 3, 4, 5] ni chiqaradi
Quyidagi kodni bajarish natijasi qanday bo'ladi:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Quyidagi kodni bajarish natijasi qanday bo'ladi:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Quyidagi kodni bajarish natijasi qanday bo'ladi:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)