副本还是参考?

时间:2019-02-12 16:30:50

标签: python

昨天,我陷入了旧的“复制-引用-参考”陷阱,花了很长时间才找到问题所在。我写道:

    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'])

我有两个问题与赋值运算符(=)的不同行为有关。

  1. Python为什么这样做?

  2. 什么时候要引用而不是副本?

也许我不屑一顾,可以避免再次用脚射击自己。

0 个答案:

没有答案