如何使用python3.4中的模块访问变量

时间:2015-09-05 05:51:52

标签: module python-3.4

我写了一个名为“Functions.py”的文件名,它包含以下代码。

def foo(x,y):
    global a
    a=42
    x,y=y,x
    b=33
    b=17
    c=100
    print(a,b,x,y)
a,b,x,y = 1,15,3,4
foo(17,4)
print(a,b,x,y)

现在,我尝试在另一个名为“modulepractice.py”的文件中导入此函数。

import Functions
print(Functions.a)

当我执行“modulepractice.py”时,输出为

42 17 4 7
42 15 3 4
42.

我怀疑这里只打印“a”但在输出中执行整个Functions文件。你能告诉我哪里出错吗?

1 个答案:

答案 0 :(得分:0)

这是因为在导入函数模块时,解释器执行 foo 函数之外的语句,即

a,b,x,y = 1,15,3,4
foo(17,4)
print(a,b,x,y)

因此,输出的前两行分别对应于 foo函数 print 语句的调用。

如果您不想要前两行输出,请将这些语句包装到if __name__ == "__main__":块中

即。

if __name__ == "__main__":
      foo(17,4)
      print(a,b,x,y)

在这种情况下,只有当您直接执行" Functions.py"时,才会调用这些语句。模块,而不是像在> modulepractice.py"中那样将其导入其他地方。模块。