Python 为什么需要使用__name__=='__main__'

 每个模块都有自己的__name__属性,但__name__的值是会变化的,与__doc__不一样。所以可以利用这一点来进行一些操作:

[plain]  view plain copy
  1. 如果某模块被import,则该模块的__name__为这个模块的名字  
  2. 如果某模块被直接运行,则其__name__为'__main__'  

        在每一个模块中,都可以使用如下格式来放置需要运行的代码,相当于C中的main()函数:

[python]  view plain copy
  1. if __name__=='__main__':  
  2.     #whatever you want to run.  

        由于Python中将没有缩进的代码均视为需要执行的,所以,当某模块被import 时,这个模块中的这些代码也会被执行一次,而这种结果往往并不是想要看到的。这时,如果使用上面这种结构,通过判断模块当前的__name__值,则可以有效避免这种情况的发生。

        同时,可以利用这一特性,对模块的测试写一个专门test()函数,然后将test()放在if语句中,便于测试。因为只有当模块被执行时才会执行if语句,进而执行test()函数,在被import时,不会产生干扰。

        所以,建议将每个模块中需要执行的代码均放在这个if模块中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值