我试图让我的小脚本工作,但我不知道问题是什么。
其中一种方法会修改我的测试dict
var
,即使我没有将其返回。我的意思是,我想在本地使用它而不是返回值。这不是我的实际代码,但您可以确定它具有代表性。
>>> class check:
... def pathgen(self,test):
... test['a']=0
... print test
... def assign(self):
... test={'a':1}
... self.pathgen(test)
... print test #WILL PRINT 0
...
>>> a=check()
>>> a.assign()
{'a': 0}
{'a': 0}
答案 0 :(得分:3)
如果您希望对对象的更改对于更改它的函数是本地的,则需要复制该对象。您可以在致电时复制字典:
self.pathgen(dict(test))
或在被叫方内复制。
def pathgen(self, test):
test = dict(test)
...