一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是在其他文件的python脚本中被import即调用(模块重用)执行。因此if name == 'main':的作用就是控制这两种情况执行代码的过程,在if name == 'main':下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,而import到其他脚本中是不会被执行的。
例子:
1
2
3
4
5
# file one.pydef func():
print("func() in one.py")
print("top-level in one.py")if__name__ == "__main__":
print("one.py is being run directly")else:
print("one.py is being imported into another module")
1
2
3
4
# file two.pyimport one # start executing one.pyprint("top-level in two.py")
one.func()if__name__ == "__main__":
print("two.py is being run directly")else:
print("two.py is being imported into another module")