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[0] = 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[7] = '!'
# Raises: TypeError: 'str' object does not suppert item assignment

But in some other languages, like Ruby, strings are mutable:

test_string = 'mutable?'

test_string[7] = '!'
# 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.

Date: 2020-01-31 Fri 14:16

Author: Jack Liu

Created: 2020-02-08 Sat 21:26