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 

 

同时也不用担心该测试内容在被其他模块引用时重复执行。

 

posted @ 2016-04-05 09:54  方诚  阅读(237)  评论(0编辑  收藏  举报