Description
Current paragraph:
Types affect almost all aspects of object behavior. Even the importance of object identity is affected in some sense: for immutable types, operations that compute new values may actually return a reference to any existing object with the same type and value, while for mutable objects this is not allowed. E.g., after a = 1; b = 1, a and b may or may not refer to the same object with the value one, depending on the implementation, but after c = []; d = [], c and d are guaranteed to refer to two different, unique, newly created empty lists. (Note that c = d = [] assigns the same object to both c and d.)
Proposed changes:
Types affect almost all aspects of object behavior. Even the importance of
object identity is affected in some sense.For immutable types such as :class:
int
or :class:str
, operations that
compute new values may actually return a reference to any existing object
with the same type and value, e.g., aftera = 1; b = 1
, a and b may
or may not refer to the same object with the value one.For mutable types such as :class:
list
or :class:dict
, this is not allowed,
e.g., afterc = []; d = []
, c and d are guaranteed to refer to two
different, unique, newly created empty lists (note thate = f = []
assigns
the same object to both e and f).
Related: #122463