Předávání proměnných odkazem v Pythonu
V Pythonu se proměnné obsahující složité objekty předávají odkazem. To znamená, že všechny změny provedené v jedné proměnné se projeví i na druhé. Ačkoli při tomto typu přiřazování hodnot roste riziko vzniku chyby, na druhou stranu se významně šetří prostředky systémové paměti OS.
Mějme dva seznamy:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
Protože proměnné lst2 bylo přiřazena
hodnota lst1, nyní je v operační
paměti počítače uložen jeden seznam,
na který odkazují současně dvě
proměnné.
Změníme první prvek lst2
a vypíšeme první seznam do konzole:
lst2[0] = '!'
print(lst1) # vypíše ['!', 2, 3, 4, 5]
Jaký bude výsledek provedení následujícího kódu:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst1)
Jaký bude výsledek provedení následujícího kódu:
lst1 = [1, 2, 3, 4, 5]
lst2 = lst1
lst2[0] = '!'
print(lst2)
Jaký bude výsledek provedení následujícího kódu:
lst1 = ['a', 'b', 'c', 'd']
lst2 = lst1
lst3 = 'e'
lst2[2] = lst3
print(lst2)