如何在函数中创建或使用全局变量?
如果我在一个函数中创建一个全局变量,我如何在另一个函数中使用该全局变量?我是否需要将全局变量存储在需要访问的函数的局部变量中?
例如......
for x in range(0,9):
string'x' = "Hello"
Run Code Online (Sandbox Code Playgroud)
所以我最终得到了string1,string2,string3 ......等于"你好"
我发现能够在运行时创建新变量并创建结果字典以便稍后处理(即写入文件)非常有用:
myDict = {}
for i in range (1,10):
temp = "variable"+str(i)
vars()[temp] = myFunctionThatReturnsData() # variable1= data1, variable2 = data2,etc.
myDict[temp] = vars(temp)
Run Code Online (Sandbox Code Playgroud)
它创建了我可以用myDict [result1]调用的字典条目[result1:data1].我一直在使用vars()而没有真正理解我在做什么.我把它vars()带回一个带有局部变量(?)的字典,和
vars()[x] = y
创建[x:y]的新词典条目?
我有一个脚本,我传入一个用{input1:data1,input2:data2}准备的字典,我使用这个方法迭代所有值,存储所有结果,并将其输出到一个文件.这段代码在一个类中的函数内部,并且正在工作.
我的困惑之处在于我已经阅读了各种关于如何不与locals()混淆的帖子,以及vars()与locals()或globals()的等效(?).
所以我的问题(至少)是双重的:
1.什么是vars(),特别是vars()[x] = y,
2.这本词典的范围是什么(在编写更大的程序时我需要记住的是什么
3.这是不错的编程实践.
提前致谢!