为什么在python文件中加入“if __name__ == __main__ :”
python 解释器在读入python源文件(比如foo.py)时会做两件事
- 设置一些特殊变量比如__name__
- 执行文件中的所有语句
例子1
python foo.py
上面这条命令行命令的意思让python 解释器读入foo.py文件,python解释器先把一个硬编码的字符串__main__赋值给__name__ 变量
例子2
当另外一个python源文件有如下语句时,python解释器先把一个硬编码的字符串foo赋值给__name__ 变量
import foo
例子3
if name == main :
foo.main()
当python源文件包含以上代码时,foo.py中的内容只有在例子1的情况下才会执行,如果不加这段代码,那么在例子2的情况下,当别的文件import foo时,foo.py的内容也会被运行
例子4
if name == main :
unittest.main()
如果在python的单元测试文件中不包含这个语句会出错

浙公网安备 33010602011771号