关于python中if __name__=='__main__'的含义

在python中,我们经常看到在源文件的最后通常都会有这样一个语句:

If __name__ == '__main__':

那么,它的作用究竟是什么呢?


比如我们定义了一个python文件为example.py:

def test():
    print 'success'

if __name__ == '__main__':
    test()

如果我直接在命令行执行命令:python example.py

那么出来的结果是:success。这说明变量 __name__ 的值确实是 '__main__'


但是如果我是使用这样的命令:

import example

example.__name__

出来的结果是:'example',如下图:


当python解析器读取example.py这个文件的内容时,它会执行这个文件里面的代码。在执行之前,python解析器会定义一些特殊的变量。在上面的例子中,对于第一种做法,python解析器会将变量 __name__ 的值变为’__main__’ 。所以也就能够调用到test函数。对于第二种做法,python解析器会将变量__name__ 的值变为’example’,也就是文件名。

 

这样做的目的是,有时候你写了一个模块(文件),你调试的时候可以直接运行这个文件,当它被导入(import)其他模块时,调试的信息就不会被调用到。


参考链接:

https://stackoverflow.com/questions/419163/what-does-if-name-main-do


http://ibiblio.org/g2swap/byteofpython/read/module-name.html



  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值