我正在尝试让我的小脚本正常工作,但我不知道问题出在哪里。
其中一种方法将修改我的测试 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}
最佳答案
如果您希望对对象的更改对于更改它的函数是局部的,则需要复制该对象。您可以在调用时复制字典:
self.pathgen(dict(test))
或在被叫方内复制。
def pathgen(self, test):
test = dict(test)
...
关于Python dict 是本地的,而不是引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15393730/