下面这段代码 很奇怪
把两个对象放在一个 list中
然后循环操作两个对象 中 一个dict key的数值
但是循环操作输出的时候发现
两个对象的 值会叠加
#!/usr/bin/env python
class test:
base = {'score' : 100}
def setBase(self, score):
self.base['score'] = score
def addScore(self):
self.setBase(self.base['score'] * 1.2)
if __name__ == '__main__':
t1 = test()
t2 = test()
list = [t1, t2]
for i in range(0, 20):
for obj in list:
obj.addScore()
print str(obj) + "|" + str(obj.base)
我期望的结果应该是
<__main__.test instance at>|{'hp': 120.0}
<__main__.test instance at>|{'hp': 120.0}
<__main__.test instance at>|{'hp': 144.0}
<__main__.test instance at>|{'hp': 144.0}
但是输出结果却是
<__main__.test instance at>|{'score': 120.0}
<__main__.test instance at>|{'score': 144.0}
<__main__.test instance at>|{'score': 172.79999999999998}
<__main__.test instance at>|{'score': 207.35999999999999} 初学python 对此困扰 求解