Python文件可以通过两种方式执行
- import module,以模块形式导入执行;
- 以主程序形式执行;
每个模块均定义了一个包含模块名称的变量__name__
,程序可以检查该变量,以确定它们在哪个模块中执行。解释器的顶级模块名为__main__
。在命令行中指定或直接运行的程序将在__main__
模块中运行。
__name__
的值
- import module,则被导入module的
__name__
等于module对应的文件名;- 以主程序运行,
__name__
等于__main__
;
假设模块中包含一些测试代码,如果模块以主程序执行,将会执行这些代码,如果由另一个模块导入,则不会执行这些代码。可以通过以下方式实现:
if __name__ == '__main__':
dosomething1
else:
dosomething2
可使用该方法来包含可选的测试/示例代码。
如开发一个模块时,将测试的代码放在dosomething1中,以主程序的形式可以运行此处。导入此模块的用户将无法使用该代码。
example
A.py
def f():
print 'A f'
print 'A.py __name__ = ',__name__
if __name__ == '__main__':
print 'This is A'
f()
B.py
import A
#运行A.py结果
A.py __name__ = __main__
This is A
A f
#运行B.py结果
A.py __name__ = A #被导入模块A,A中的__name__ = A,未执行if下的代码
转载请标明出处,原文地址(http://blog.csdn.net/lis_12/article/details/53899038).
如果觉得本文对您有帮助,请点击‘顶’支持一下,您的支持是我写作最大的动力,谢谢。