- What are the design reasons of making Python strings immutable? How does it make programming easier?
- I’m used to mutable strings, like the ones in C. How am I supposed to program without mutable strings? Are there any best practices?
What are the design reasons of making Python strings immutable? How does it make
Share
When you receive a string, you’ll be sure that it stays the same. Suppose that you’d construct a
Fooas below with a string argument, and would then modify the string; then theFoo‘s name would suddenly change:With mutable strings, you’d have to make copies all the time to prevent bad things from happening.
It also allows the convenience that a single character is no different from a string of length one, so all string operators apply to characters as well.
And lastly, if strings weren’t immutable, you couldn’t reliably use them as keys in a
dict, since their hash value might suddenly change.As for programming with immutable strings, just get used to treating them the same way you treat numbers: as values, not as objects. Changing the first letter of
namewould be