_name_=='_main_'
- 保证代码规范性
- 作为python(解释性脚本语言)的入口
- 导入某个模块,但又不想改模块的部分代码被直接执行,那就可以这一部分代码放在
if __name__=='__main__':
内部
eg:不加此代码时
# 模块A
a = 100
print '你好,我是模块A……'
print a
# 模块B
from package01 import A
b=50
print '你好,我是模块B……'
print b
B的输出:
你好,我是模块A……
100
你好,我是模块B……
50
在模块A中加入
# 模块A
a = 100
print '你好,我是模块A……'
if _name_=='_main_':
print a
B的输出:
你好,我是模块A……
你好,我是模块B……
50
此时,A模块中的a的值不会再被输出
运行原理
__name__
作为python中的内置变量,'__main__'
等于当前执行文件的名称(包含了后缀.py)
- 当前模块直接被执行时,
__name__
等于文件名(包含了后缀.py)。__name__ == '__main__'
结果为真;其中包含的代码可被执行
-当前模块被 import到其他模块中,则__name__
等于模块名称(不包含后缀.py)。__name__ == '__main__'
结果为假,不运行对应代码。