大多数编排的较好的脚本或程序里面都会有 "if _name_=='_main_':"这段,它的作用是什么呢?
首先,我们来看_name_是什么。
在python中,每个模块都有一个叫_name_的内置变量,这个变量的值会根据该模块被使用的方式而变化:
1、假设模块A.py 在另一个模块 B.py 中,被作为模块导入,则_name_的值为模块 A.py 的名称
2、假设模块 A.py被直接执行,则_name_ 的值为_main_
举个栗子
1、这是名为one.py的python脚本文件:
print 'one.py'
def fun():
print 'one.py function'
if _name_=='_main_':
print 'one.py is being run directly'
else:
print 'one.py is from another module'
2、这是名为two.py的python脚本文件:
import one
print 'two.py'
if _name_=='_main_':
print 'two.py is being run directly'
else:
print 'two.py is from another module'
直接运行one.py,可得到:
one.py
one.py is being run directly
直接运行two.py,可得到:
one.py
one.py is from another module
two.py
two.py is being run directly
从上段代码对比可以看出,“if _name_=='_main_':"的作用在于:如果直接执行含有该语句的模块,则执行该语句后续部分;若在另一个模块中调用含有该语句的模块时,该语句的后续部分不执行。这样能够使代码的运行更加简洁流畅。