Sobes.tech
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.