昨天,我陷入了旧的“复制-引用-参考”陷阱,花了很长时间才找到问题所在。我写道:
if self.cash:
self.__dict__['cash2'] = self.__dict__['cash1']
self.__dict__['cash3'] = self.__dict__['cash1']
当我想要的时候:
if self.cash:
self.__dict__['cash2'] = list(self.__dict__['cash1'])
self.__dict__['cash3'] = list(self.__dict__['cash1'])
我有两个问题与赋值运算符(=)的不同行为有关。
Python为什么这样做?
什么时候要引用而不是副本?
也许我不屑一顾,可以避免再次用脚射击自己。