【发布时间】:2019-04-27 19:13:21
【问题描述】:
我正在使用 Python 3.6 我有一个包含很多功能级别的代码。在所有这些中,我都使用一本字典,作为参数提供。所以,如果我在某个地方改变它,它会在各个层次上改变。但是,在一个函数中,我需要用另一个函数替换它,这就是问题出现的地方:重新定义内部字典,破坏到主字典的链接,并且不会将其更改为下层。另外,我不能使用return,因为它会重新定义字典,只是向下一级。
所以:
Test = {"1":"2"}
def Teser(Test):
Test["Hell"]= "No"
Teser(Test)
print(Test)
这个输出:
{'1': '2', 'Hell': 'No'}
但是
Test = {"1":"2"}
def Teser(Test):
Test = {"Hell":"No"}
Teser(Test)
print(Test)
输出(有和没有返回):
{'1': '2'}
有没有办法使第二个代码结果与第一个相同,而不需要返回或全局?
【问题讨论】:
-
也许是时候重构代码了?如果不是,这个变量,在做本地工作的时候,是不是必须和全局dict同名?
-
不幸的是,它必须是这样的......
标签: python function dictionary