2

我写了一个a.py这样的python文件:

x = 1
def hello():
   print x

hello()

当我这样做时import a,它正在打印x

到目前为止,我的理解是import将包括变量和函数定义,但为什么要执行该方法hello()

4

4 回答 4

6

Python 导入并非微不足道,但简而言之,当一个模块被导入时,它会从上到下执行。由于调用了hello,它会调用该函数并打印hello。

如需更深入地了解进口,请参阅:

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

if __name__ == '__main__':
    hello()

另请参阅:如果 __name__ == "__main__": 会做什么?

于 2013-09-06T08:16:21.757 回答
4

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

这就是为什么他们经常使用像这样的警卫:

if __name__=='__main__':
   # call hello() only when the module is run as "python module.py"
   hello()
于 2013-09-06T08:20:01.157 回答
1

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

于 2013-09-06T08:17:38.107 回答
0

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

于 2013-09-06T08:18:21.750 回答