Chapter 2: Mutability and Object References ============================================== .. code-block:: python # Chapter 2: Mutability and References print("IMMUTABLE OBJECT EXAMPLE (int):") a = 5 b = a print("Before change:") print("a:", a, "id:", id(a)) print("b:", b, "id:", id(b)) # This creates a NEW integer object a = a + 1 print("\nAfter change:") print("a:", a, "id:", id(a)) print("b:", b, "id:", id(b)) # ------------------------------------ print("\nMUTABLE OBJECT EXAMPLE (list):") list1 = [1, 2, 3] list2 = list1 # Both reference the same object print("Before modification:") print("list1:", list1, "id:", id(list1)) print("list2:", list2, "id:", id(list2)) # This mutates the existing list object list1.append(4) print("\nAfter modification:") print("list1:", list1, "id:", id(list1)) print("list2:", list2, "id:", id(list2)) # ------------------------------------ print("\nMAKING A REAL COPY:") list3 = list1.copy() # Creates a new list object list1.append(5) print("list1:", list1, "id:", id(list1)) print("list3:", list3, "id:", id(list3))