Mutable vs Immutable Objects
Mutable objects can be changes, while immutable objects can't. In Python, strings are immutable, so…
A mutable object can be changed after it's created, and an immutable object can't.
For example, lists are mutable in Python:
int_list = [4, 9] int_list[0 = 1] # int_list is now [1, 9]
And tuples are immutable:
int_tupel = (4, 9) int_tupel = 1 # Raises: TypeError: 'tuple' object does not support item assignment
Strings can be mutable or immutable depending on the language.
Strings are immutable in Python:
test_string = 'mutable?' test_string = '!' # Raises: TypeError: 'str' object does not suppert item assignment
But in some other languages, like Ruby, strings are mutable:
test_string = 'mutable?' test_string = '!' # test_string is now 'mutable!'
Mutable objects are nice because you can make changes in-place , without allocating a new object. But be careful – wherever you make an in-place change to an object, all references to that object will now reflect the change.