Sobes.tech
Junior — Middle

Mis on Pythonis stringide muutumatuse omadus ja miks neid pärast loomist muuta ei saa?

sobes.tech AI

Vastus AI-lt

Pythonis on stringid mittemuudetavad (immutable) objektid. See tähendab, et pärast stringi loomist ei saa selle sisu muuta.

Selle omaduse põhjused:

  • Mälu ja jõudluse optimeerimine. Mittemuudetavus võimaldab stringe internida — hoida ühte koopiat samadest stringidest mälus, mis säästab ressursse.
  • Turvalisus ja prognoositavus. Kui stringe ei saa muuta, takistab see juhuslikke või soovimatuid andmete muutusi, eriti funktsioonide vahel stringide edastamisel.

Näiteks, proovides otse muuta stringi märki:

s = "hello"
s[0] = 'H'  # Viga: TypeError: 'str' object does not support item assignment

Stringi muutmiseks tuleb luua uus:

s = "hello"
s = 'H' + s[1:]  # Nüüd s == "Hello"

Seega on Pythonis stringid rakendatud kui mittemuudetavad objektid, et tõsta koodi tõhusust ja turvalisust.