Przekazywanie zmiennych przez referencję w Pythonie
W Pythonie zmienne zawierające złożone obiekty są przekazywane przez referencję. Oznacza to, że wszystkie zmiany dokonane w jednej zmiennej odzwierciedlą się w drugiej. I chociaż przy takim typie przypisywania wartości wzrasta ryzyko pojawienia się błędu, to jednak znacząco oszczędzane są zasoby pamięci systemowej OS.
Załóżmy, że mamy dwie listy:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Ponieważ zmiennej lst2 przypisano
wartość lst1, teraz w pamięci operacyjnej
komputera przechowywana jest jedna lista,
na którą jednocześnie wskazują dwie
zmienne.
Zmieńmy pierwszy element lst2
i wypiszmy pierwszą listę do konsoli:
lst2[0] = '!'
print(lst1) # wypisze ['!', 2, 3, 4, 5]
Jaki będzie wynik wykonania następującego kodu:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Jaki będzie wynik wykonania następującego kodu:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Jaki będzie wynik wykonania następującego kodu:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)