Предаване на променливи по референция в 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)