在python中导入文件与运行该文件相同吗?

时间:2014-05-11 11:44:23

标签: python import

我有2个python文件。 file1.py和file2.py

file1.py

print "file1"

file2.py

import file1 print "file2"

当我运行file2时,输出是

file1的 file2的

这个问题似乎不太天真,但我想知道这里究竟发生了什么。

先谢谢。

3 个答案:

答案 0 :(得分:4)

是。 导入文件时正在运行。 为避免这种情况,file1.py可以是:

if __name__=='__main__':
    print 'file1'

然后只有当file1.py是直接运行的主文件时才会打印文本。

答案 1 :(得分:1)

从某种意义上说是的。导入文件时,您将运行所有脚本,并且还将初始化所有方法。

确保代码仅在文件直接运行时运行,而不在时导入。您应将所有主要代码放在main()中,并按以下方式执行:

def main():
    #all your main code here

if __name__ == '__main__':
    main()

答案 2 :(得分:0)

import语句结合了两个操作;它搜索命名模块,然后将搜索结果绑定到本地范围中的名称。 import语句的搜索操作定义为使用适当的参数调用 import ()函数。 import ()的返回值用于执行import语句的名称绑定操作。有关该名称绑定操作的确切详细信息,请参阅import语句。

import file using python

打印' file2'你的代码,需要将它作为命令传递给Python解释器,

python myscript.py

没有自动运行的main()函数,因此main()函数隐含了顶层的所有代码,并调用if __name__ == "__main__"

How main does in python