python中

1. 如果模块是被导入,__name__的值为模块名字
2. 如果模块是被直接执行,__name__的值为’__main__’

py1.py

代码如下:

#!/usr/bin/env python
def test():
print ‘__name__ = ‘,__name__
if __name__ == ‘__main__’:
test()

py2.py

代码如下:

#!/usr/bin/env python
import py1.py

def test():
print ‘__name__ = ‘,__name__
if __name__ == ‘__main__’:
test()
print ‘py1.py __name__ = ‘,py1.__name__

执行结果:

代码如下:

__name__=__main__
py1.py __name__=py1

通过结果可以知道,py2.py直接执行,那么内建变量__name__的值为__main__,否则为模块的名字,通过这个特性可以在if语句里面添加测试代码,可以提高减少bug,提高程序的健壮性。

代码如下:

if __name__ == ‘__main__’:
test()

Posted in 未分类

发表评论