Я немного смущен тем, как значения объектов сохраняются в python.Ссылка на объект Python
Скажем, у меня есть объект класса a
, который имеет определенный набор атрибутов, прикрепленных к нему. У нескольких классов B
, C
есть свои ссылки на класс a
, когда каждый из них создан. Только класс C
может модифицировать материал в классе a
. Когда он изменен, класс B
забрать их? Из моего собственного примера они, похоже, делают это.
Мой вопрос в том, есть ли случаи, когда я должен знать, когда изменения не будут приняты? Когда python создает копию класса a
? Более конкретно, что создаст копию, которая не будет влиять на оригинал a
.
class A:
def __init__(self):
self.x = 1
def changeX(self,num):
self.x = num
class B:
def __init__(self,classA):
self.x = classA
class C:
def __init__(self,classA):
self.x = classA
def ChangeA(self,num):
self.x.changeX(num)
c_a = A()
c_b = B(c_a)
c_c = C(c_a)
c_c.ChangeA(2)
# All returns 2
c_a.x
c_b.x.x
c_c.x.x