python 中__name__ = '__main__' 的作用
关键在于__name__,它在不同的模块中有不同的含义,如果在本模块执行,它被解释为'__main__',如果它在其他模块执行,它被解释为它所在module的名字。
Test.py中脚本
import sys def printMain(): print __name__ if __name__ == '__main__': print '123'
如果直接执行该脚本,那么if部分将被执行,因为__name__被解释成为了'__main__';如果从其他模块引入该模块中的方法,if部分将不会被执行,而且__name__被解释成为'Test',
T.py脚本中
from Test import printMain printMain()
输出结果为Test
通常会使用__name__的这个特性来测试脚本,或者判断脚本所在模块。比如写完一个模块后,可以在这个if测试一下脚本的内容,还可以直接在命令行中执行,比如
# python Test.py
同时也不用担心该测试内容在被其他模块引用时重复执行。