如何导入函数模块并在模块之间传递变量

时间:2013-05-04 10:20:58

标签: python python-2.7 import module global

文件'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中使用的结果变量?

3 个答案:

答案 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