Перадача зменных па спасылцы ў Python
У Python зменныя, якія ўтрымліваюць складаныя аб'екты перадаюцца па спасылцы. Гэта значыць, усе змены, зробленыя ў адной зменнай адлюструюцца на другой. І хоць пры такім тыпе прысваення значэнняў павялічваецца рызыка з'яўлення памылкі, затое значна экономяцца рэсурсы сістэмнай памяці АС.
Хай у нас ёсць два спісы:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Паколькі зменнай lst2 прысвоілі
значэнне lst1, цяпер у аператыўнай
памяці камп'ютара захоўваецца адзін спіс,
на які адначасова спасылаюцца дзве
зменныя.
Давайце зменім першы элемент lst2
і вывядзем першы спіс у кансоль:
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)