Python之__main__

版权声明:本文为博主原创文章,未经博主允许不得转载。 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__'结果为假,就是不调用对应的方法。

猜你喜欢

转载自blog.csdn.net/cadi2011/article/details/84775745