if __name__ == '__main__' 如何正确理解?

302人浏览 / 0人评论

__name__属性是Python的一个内置属性,记录了模块的名字。

模块就是一个独立的Python文件,例如 a.py、b.py...等等,就可以称为“模块a”、“模块b”。而在程序内部,模块名字是存放在__name__变量中的。

不同于Java中的Class名字,Class.getName()返回的是固定的值,而Python模块的__name__变量则在不同的执行条件下,其值是不同的。下面的例子摘自知乎,说的很有意思,大家可以学习一下:

小明.py

在朋友眼中,你是小明(__name__ == '小明')

而在你自己眼中,你是你自己(__name__ == '__main__')

你编程很好,朋友调你去帮他写程序(import 小明,这时你在朋友眼中,__name__ == '小明')

但你晚上也会打开xx网站,做一些自己的事情(直接运行小明.py,__name__ == '__main__')

全部评论

晴天下起了小雨
2017-10-01 18:00
很喜欢,果断关注了
wjmyly7336064
2017-10-01 18:00
相当实用,赞美了
橘大佬
2017-10-01 18:00
就是有些细节再到位点就好了…