Junior — Middle
What is the characteristic of immutable strings in Python and why can't they be changed after creation?
sobes.tech AI
Answer from AI
In Python, strings are immutable objects. This means that once a string is created, its content cannot be changed.
Reasons for this feature:
- Memory and performance optimization. Immutability allows string interning — storing a single copy of identical strings in memory, which saves resources.
- Security and predictability. If strings cannot be changed, it prevents accidental or unwanted data modifications, especially when passing strings between functions.
For example, attempting to change a character in a string directly:
s = "hello"
s[0] = 'H' # Error: TypeError: 'str' object does not support item assignment
To change a string, you need to create a new one:
s = "hello"
s = 'H' + s[1:] # Now s == "Hello"
Thus, strings in Python are implemented as immutable objects to enhance code efficiency and security.