Python编程中“if _name_=='_main_':"语句的作用和原理

来源:互联网 发布:ubuntu 查看mysql端口 编辑:程序博客网 时间:2024/06/17 13:18

大多数编排的较好的脚本或程序里面都会有 "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 oneprint 'two.py'if _name_=='_main_':    print 'two.py is being run directly'else:    print 'two.py is from another module'

直接运行one.py,可得到:

one.pyone.py is being run directly

直接运行two.py,可得到:

one.pyone.py is from another moduletwo.pytwo.py is being run directly


从上段代码对比可以看出,“if _name_=='_main_':"的作用在于:如果直接执行含有该语句的模块,则执行该语句后续部分;若在另一个模块中调用含有该语句的模块时,该语句的后续部分不执行。这样能够使代码的运行更加简洁流畅。

1 0