【发布时间】:2011-01-20 05:27:07
【问题描述】:
我发现能够在运行时创建新变量并创建结果字典以供以后处理(即写入文件)非常有用:
myDict = {}
for i in range (1,10):
temp = "variable"+str(i)
vars()[temp] = myFunctionThatReturnsData() # variable1= data1, variable2 = data2,etc.
myDict[temp] = vars(temp)
它创建了我可以用 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.这是否是好的编程习惯。
提前致谢!
【问题讨论】:
标签: python string dictionary variables