Почему переменная = объект не работает как переменная = число

Эти назначения переменных работают как я ожидаю:

>>> a = 3
>>> b = a
>>> print(a, b)
(3, 3)
>>> b=4
>>> print(a, b)
(3, 4)

Однако эти назначения ведут себя по-разному:

>>> class number():
...     def __init__(self, name, number):
...         self.name = name
...         self.number = number
... 
>>> c = number("one", 1)
>>> d = c
>>> print(c.number, d.number)
(1, 1)
>>> d.number = 2
>>> print(c.number, d.number)
(2, 2)

Почемуc такой же какdв отличие от(a, b) пример? Как я могу сделать что-то вроде в(a, b) в(c, d) пример занятий? То есть скопировать объект, а затем изменить одну его часть (это не повлияет на объект, у которого я заимствовал свойства)?

Ответы на вопрос(10)

Ваш ответ на вопрос