Pythonда ўзгарувчиларни ҳавола орқали ўтказish
Pythonда мураккаб объектларни ўз ичига олган ўзгарувчилар ҳавола орқали ўтказилади. Бу демак, бир ўзгарувчида киритилган барча ўзгартиришлар иккинчисига акс этади. Ва ҳамо гўё бу турдаги қийматларни тенглаштириш билан хатолик пайдо булиш хавфи orthgan булса-да, аммо АТ систeмаси хотирасининг ресурслари жуда кам сарфланади.
Бизда иккита рўйхат бор деб фараз қилайлик:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Чунки lst2 ўзгарувчисига
lst1 қиймати тенглаштирилди,
енди компютернинг оператив хотирасида
бир рўйхат сақланади,
унга бир вақтнинг ўзида иккита
ўзгарувчи ҳавола берadi.
Келинг lst2 ning биринчи элементини ўзгартирамиз
ва биринчи рўйхатни консолга чиқарамиз:
lst2[0] = '!'
print(lst1) # чиқаради ['!', 2, 3, 4, 5]
Куйидаги кодни бажариш натижаси нима булади:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Куйидаги кодни бажариш натижаси нима булади:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Куйидаги кодни бажариш натижаси нима булади:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)