我有2个python文件。 file1.py和file2.py
file1.py
print "file1"
file2.py
import file1
print "file2"
当我运行file2时,输出是
file1的 file2的
这个问题似乎不太天真,但我想知道这里究竟发生了什么。
先谢谢。
答案 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语句。
打印' file2'你的代码,需要将它作为命令传递给Python解释器,
python myscript.py
没有自动运行的main()
函数,因此main()
函数隐含了顶层的所有代码,并调用if __name__ == "__main__"