2012-08-16 73 views
0

我知道这个问题已经被扔了很多,但它仍然不是很清楚。 我有一个文件'vmsupport.py'。在它的许多功能,它有一个特别是当它需要一个新的元素在脚本的开头添加到全局字典“netpathdict'.I宣布在python中编辑全局字典

netpathdict={} 

,因为我想用这个字典中另一个文件'core.py'中的另一个函数。 “core.py”文件

storefile="%s/netsummary_%s.html" % (full_paths[1].rsplit('/',1)[0],build) 
    netpathdict[build] = storefile 
    self.logger.debug("storefile at %s key of dictionary is %s" %(build,netpathdict[build])) 

内容:

def view_networksummary(request,build): 
result_file= netpathdict[build] 
f = open(result_file,'r') 
return HttpResponse(f) 
f.close()  

所以,我的问题是,究竟如何我导入词典core.py和使用vmsupport.py文件的内容它和我如何确定正在使用的字典是已编辑的字典(实际上,vmsupport.py文件在不断增加字典元素的守护进程上工作,因此,它不是一次性事务) 谢谢

+0

我不认为全局netpathdict [build] = storefile'是有效的Python。这个代码是否可以工作? – 2012-08-16 05:59:52

+1

^是的,我看着它。我将其更改为:'netpathdict [build] = storefile' – 2012-08-16 06:07:24

回答

1

怎么样我是否真的将字典导入到core.py并使用它,以及如何确保正在使用的字典是已编辑的字典。

你不知道。您可以导入包含模块并改变属性中包含的对象。

import foo 
foo.bar.append('baz') 
+0

^但字典已全局声明并已在'def foo'函数中编辑过。所以,你说导入函数'def foo'到core.py会给我一个最新版本的字典(正如我之前指出的,字典正在被守护进程不断编辑)? – 2012-08-16 06:11:24

+0

如果字典已被全局声明,那么为什么你会关心这个函数呢? – 2012-08-16 06:22:47

+0

好的,如果我已经在全球范围内声明它,并且正在使用任何功能进行编辑,它将在全球进行编辑。因此,我可以在任何我想要的地方使用它。这就是你想说的吗? – 2012-08-16 06:44:58