Эти назначения переменных работают так, как я ожидаю:
>>> 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)
? То есть, скопируйте объект, а затем измените его часть (что не повлияет на объект, который я заимствовал свойства)?