python-模块-模块导入之__name__(五)
1 模块__name__
每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用,当一个模块被第一次输入的时候,这个模块的主块将被运行。假如我
们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属性完成。
mokuai2.py:
#coding=utf-8; def test(): print "test函数执行:",__name__; print "2"; if __name__=='__main__': #此模块本身执行时,if函数会执行,但是被引入时,函数不会被执行; print "运行__main__"; test();
运行结果:
2
运行__main__
test函数执行: __main__
引用mokuai2模块:
from mokuai2 import *; test();
运行结果:
2
test函数执行: mokuai2
注意:当模块被引用时,__name__的值是文件名mokaui2,而不是__main__