【发布时间】:2019-09-25 10:28:16
【问题描述】:
我有一个 python 脚本 (myscript.py),其中包含许多函数和一个名为“resultsdict”的全局变量(一个空字典)。我想重用其中一个函数 (myfunc)。
myfunc 接受单个输入 (input),创建字典 (tempdict),然后更新 resultsdict (key = input, value = tempdict)。我通常通过循环列表来使用这个函数,调用列表的每个成员作为输入。
resultsdict = {}
mylist = [1,2,3]
for x in mylist:
myfunc(x)
print(resultsdict)
{1:{dict of results-1},2:{dict of results-2},3:{dict of results-3}}
我想在第二个脚本 (script2.py) 中重用 myfunc。 script2.py 还包含一个名为 resultsdict 的全局变量。当我将 myfunc 导入 script2 并运行它时,resultsdict 变量没有更新。
from myscript import myfunc
resultsdict = {}
mylist = [1,2,3]
for x in mylist:
myfunc(x)
print(resultsdict)
{}
任何帮助将不胜感激
【问题讨论】:
-
但你没有从 myfunc 返回任何内容,而且在其中你重新声明 resultsdict = {} 所以每次你调用它设置 resultsdict = {} 的函数。能否请您显示所有代码并举例说明预期结果?
-
myfunc将更新resultsdict变量在其范围中的任何内容。这根本不是它的工作原理。你要么想使用一个类,要么明确地接受和返回值。 -
myfunc 没有返回任何东西是正确的。每次我调用它设置 resultsdict = {} 的函数是不正确的 - 分配是在脚本的主体中完成的,而不是在函数内
标签: python