究竟导入将在python中做什么

时间:2013-09-06 08:14:12

标签: python python-2.7

我写了一个python文件a.py,如下所示:

x = 1
def hello():
   print x

hello()

当我执行import a时,它会打印x

的值

直到现在我的理解是import将包含变量和函数定义,但为什么它执行方法hello()

4 个答案:

答案 0 :(得分:6)

Python导入并非易事,但简而言之,当导入模块时,会执行从上到下。由于调用了hello,它将调用该函数并打印hello。

要深入了解进口产品,请参阅:

为了能够独立使用文件和作为模块,当程序独立运行时,您可以检查设置为__name__的{​​{1}}:

__main__

另请参阅:What does if __name__ == "__main__": do?

答案 1 :(得分:4)

在Python中,声明和执行之间没有明确的区别。实际上,只有执行语句。例如,def hello():...只是将函数值赋给模块变量hello的一种方法。导入模块后,模块中的所有语句都按顺序执行。

这就是为什么他们经常使用像:

这样的守卫
if __name__=='__main__':
   # call hello() only when the module is run as "python module.py"
   hello()

答案 2 :(得分:1)

你在底部调用了hello()函数,所以当你执行“import a”时它将执行该函数!

答案 3 :(得分:0)

你需要删除最后的hello(),这就是执行该功能的内容。您只需要文件a.py

中的声明