Я понял, что переменные класса Python имеют одинаковое расположение памяти для всех экземпляров, однако я не понимаю, почему изменение переменной класса из одного экземпляра не влияет на другие экземпляры и сам класс? См. Следующий код:переменные класса python не изменяются для всех экземпляров?
class (object):
name = 'Donald '
def __init__(self):
self.x = 4
c = Sam()
z = Sam()
print hex(id(c.name)), hex(id(z.name)), hex(id(Sam.name))
print c.name, z.name
c.name = 'Trump'
print c.name, z.name, US_President.name
print hex(id(c.name)), hex(id(z.name)), hex(id(US_President.name))
US_President.name = 'Obama'
print c.name, z.name, US_President.name
Output:
0x7f227776a930 0x7f227776a930 0x7f227776a930
Donald Donald
Trump Donald Donald
0x7f227776a420 0x7f227776a930 0x7f227776a930
Trump Obama Obama
Может кто-нибудь объяснить это поведение. Заранее спасибо
спасибо! да, я пропустил этот трюк :) – Sam1313