文章参考知乎大神的解答。
python文件的后缀名是.py,python文件既可以用来直接执行,也可以作为模块被导入。
江湖惯例,先上结论:
该代码仅在直接运行当前py文件的时候才会运行,而在作为模块被导入时不会运行,故而通常为测试代码而安置。
if __name__ = '__main__':
其中,name是模块的内置属性,而这个内置属性的值取决于这个.py文件的使用方式,即你是作为模块导入还是直接执行。
如果你是直接执行,那么这个name的值就是’main‘,如果你作为一个模块导入,那么这个内置属性值就取决于这个文件名(不包含路径和文件扩展名)。
放一个有趣的解释:
小明.py
朋友眼中,你是小明(__name__ == '小明'),
你自己眼中,你是你自己(__name__ == '__main__'),
你编程很好, 朋友调你去帮他写程序(import 小明, 这时你在朋友眼中: __name__ == '小明'),
但你晚上也会打开xx网站, 做一些自己的事情(直接运行小明.py, __name__ == '__main__')
深入理解函数的入口,参见:
http://blog.konghy.cn/2017/04/24/python-entry-program/
前人栽树,后人捡屎。