0
我意識到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