版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cadi2011/article/details/84775745
1、好些个文件里经常看到__main__,就下面那么一行
判断 __name__ == 一个字符串
if __name__ == "__main__": #结果是True或False
2、比如这样,字符串对比
>>> fk == "hello"
True
>>> fk == 'w'
False
3、关于__name__的值
a、如果该模块是程序的主程序,即入口模块,则__name__的值是"__main__"
b、如果该模块不是程序的主程序,则__name__值是"当前模块名",即该模块执行的时候,是被其他模块引入而执行的
4、这边多个嘴啊,就是Python的执行
a、python解释器在加载模块的时候,没有锁进的语句会被执行
b、当你加了 __name__ 的时候,就可以根据判断结果,决定是否执行语句了
5、再来个例子
nameTest模块
print "I am a Man,"
if __name__ == "__main__":
print 'hello World'
第一种:nameTest模块,自己作为主程序执行
输出结果:
I am a Man,
hello World
>>>
Main模块,我给这个模块起叫Main
import nameTest
第二种:在Main模块中,import nameTest模块,导入后,nameTest模块会被执行
此时再看输出结果:
I am a Man,
>>>
可见“hello world”没有被打印
6、基本原理(转载部分,写的很好)
a、每个Python模块(python文件)都包含内置变量 __name__,对它称为内置变量。
b、当运行模块被执行的时候,__name__等于文件名(包含了后缀.py)
c、如果import到其他模块中,则__name__等于模块名称(不包含后缀.py)。
d、而“__main__”等于当前执行文件的名称(包含了后缀.py)。
e、所以当模块被直接执行时,__name__ == '__main__'结果为真;
f、而当模块被import到其他模块中时,__name__ == '__main__'结果为假,就是不调用对应的方法。