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.