我写了一个a.py
这样的python文件:
x = 1
def hello():
print x
hello()
当我这样做时import a
,它正在打印x
到目前为止,我的理解是import
将包括变量和函数定义,但为什么要执行该方法hello()
?
我写了一个a.py
这样的python文件:
x = 1
def hello():
print x
hello()
当我这样做时import a
,它正在打印x
到目前为止,我的理解是import
将包括变量和函数定义,但为什么要执行该方法hello()
?
Python 导入并非微不足道,但简而言之,当一个模块被导入时,它会从上到下执行。由于调用了hello,它会调用该函数并打印hello。
如需更深入地了解进口,请参阅:
为了能够独立使用文件和作为模块使用文件,您可以在程序独立运行时检查__name__
设置为__main__
的 :
if __name__ == '__main__':
hello()
在 Python 中,声明和执行之间没有明确的区别。实际上,只有执行语句。例如,def hello():...
只是将函数值分配给模块变量的一种方式hello
。导入模块后,模块中的所有语句都会按顺序执行。
这就是为什么他们经常使用像这样的警卫:
if __name__=='__main__':
# call hello() only when the module is run as "python module.py"
hello()
您在底部调用了 hello() 函数,因此当您执行“import a”时,它将执行该函数!
您需要hello()
在最后删除,这就是执行该功能的内容。您只需要文件中的声明a.py