Python中关于__main__变量的问题
Posted legendsneverdie
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python中关于__main__变量的问题相关的知识,希望对你有一定的参考价值。
在Python代码的编写中,经常会用到这么一句:
if __name__ == "__main__": ....
这句代码之前的语句在整个模块被其他文件调用的时候会被运行,而这句代码之后的语句则不会,经过多次的查阅资料,我得出一下的解释:
__name__变量在单独运行此模块(.py文件)时,其表示的内容为”__main__",而当这个模块被其他模块调用时,__name__变量则表示被调用的这个模块的名字(不包含.py这三个字符)。
当模块直接执行的时候,__name__变量="__main__"="__main__",所以此句后边的代码也会被执行。
而当模块被调用的时候,__name__变量="模块名"≠"__main__",所以此句后面的代码不会被执行,得益于此种设定,我们可以自由的划定一个模块内的哪些功能可以被任意调用,哪些功能不能被调用,使用起来更加的方便,因为当我们写出import xxx时,xxx这个模块的内容会被提前加载,若有if __name__ == "__main__",则可以避免全部加载,减少负担(这里的原理是,运行过的py文件会产生一个同名后缀名为pyc的文件,我们知道,Python是一门解释性语言,我们编写好的代码经过解释器解释为计算机可以读懂的二进制语言,这个pyc文件就是不用解释,计算机能够直接运行的文件。
以上是关于Python中关于__main__变量的问题的主要内容,如果未能解决你的问题,请参考以下文章
python中关于不执行if __name__ == '__main__':测试模块的解决
python 中关于 类变量, 实例变量, 静态方法,类方法,全局变量,局部变量的理解
[Python]解决python3中关于import的疑难杂症
Python Flask 中关于 500 Internal Server Error 的问题