我写了一个python文件a.py
,如下所示:
x = 1
def hello():
print x
hello()
当我执行import a
时,它会打印x
直到现在我的理解是import
将包含变量和函数定义,但为什么它执行方法hello()
?
答案 0 :(得分:6)
Python导入并非易事,但简而言之,当导入模块时,会执行从上到下。由于调用了hello,它将调用该函数并打印hello。
要深入了解进口产品,请参阅:
为了能够独立使用文件和作为模块,当程序独立运行时,您可以检查设置为__name__
的{{1}}:
__main__
答案 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