7.2 Python __name__,__main__

Python文件可以通过两种方式执行

  1. import module,以模块形式导入执行;
  2. 以主程序形式执行;

每个模块均定义了一个包含模块名称的变量__name__程序可以检查该变量,以确定它们在哪个模块中执行。解释器的顶级模块名为__main__。在命令行中指定或直接运行的程序将在__main__模块中运行。

__name__的值

  1. import module,则被导入module的__name__等于module对应的文件名;
  2. 以主程序运行,__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).

如果觉得本文对您有帮助,请点击‘顶’支持一下,您的支持是我写作最大的动力,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值