Junior — Middle
V čem spočívá vlastnost neměnnosti řetězců v Pythonu a proč je nelze po jejich vytvoření měnit?
sobes.tech AI
Odpověď od AI
V Pythonu jsou řetězce neměnné (immutable) objekty. To znamená, že po vytvoření řetězce nelze jeho obsah změnit.
Důvody této vlastnosti:
- Optimalizace paměti a výkonu. Neměnnost umožňuje internaci řetězců — ukládání jedné kopie stejných řetězců do paměti, což šetří zdroje.
- Bezpečnost a předvídatelnost. Pokud řetězce nelze změnit, zabraňuje to náhodným nebo nežádoucím změnám dat, zejména při předávání řetězců mezi funkcemi.
Například při pokusu přímo změnit znak řetězce:
s = "hello"
s[0] = 'H' # Chyba: TypeError: 'str' object does not support item assignment
Pro změnu řetězce je třeba vytvořit nový:
s = "hello"
s = 'H' + s[1:] # Nyní s == "Hello"
Tímto způsobem jsou řetězce v Pythonu implementovány jako objekty neměnné, což zvyšuje efektivitu a bezpečnost kódu.