文件'Definitions.py'包含代码:
def testing(a,b):
global result
for count in range(a,b):
result.append(0)
print result
文件'Program.py'包含代码:
from Definitions import *
result = []
testing(0,10)
print result
Definitions.py的结果是预期的零列表,而Program.py中的变量只是空列表,尽管结果被定义为全局变量。如何从Definitions.py运行函数,但是传递在Program.py中使用的结果变量?
答案 0 :(得分:1)
全局命名空间与模块有关。它们不在模块之间共享。
您可以返回result
:
def testing(a,b):
result = []
for count in range(a,b):
result.append(0)
return result
并像这样使用它:
result = testing(0,10)
print result
但请注意,上面每次调用result = []
时都会创建一个新列表testing
。
答案 1 :(得分:0)
全局范围仅适用于它所在的模块(文件)。
答案 2 :(得分:0)
testing
的全局是Definitions.py
的全局命名空间,即定义def testing(a,b)
的位置。因此,它无法查看/访问result
中的Program.py
。