python中的if __name__=='__main__'

背景

初学者在学习Python的过程中,一定都遇到过if __name__ == '__main__'这样的语句。那么,这样的一个语句有什么作用呢?在什么时候需要使用这个判断语句呢?

举个例子

执行:

def main():
    print "hello world!"
    print __name__

if __name__ == '__main__':
 main()

print __name__

文件名为:tesy.py
执行结果为:
这里写图片描述
可以看到,直接执行该模块,__name__变量为__main__
执行:

import test

文件名为:test1.py
执行结果为:
这里写图片描述
可以看到,将test作为模块导入另一个文件中,得到的结果为test。
这是因为在导入test模块后,也会执行该模块。当__name____main__时才会执行main()。
然而test作为模块导入另一个文件时,__name__为模块名:test。因此最后只打印了一个test。

语句的作用

我们应该都知道类似__xxx__这种形式的变量是python的内置变量,在声明用户变量时不可以与内置变量重复。而这个__name__内置变量代表的是模块名(模块也就是python文件)。该模块名在直接运行模块时为__main__,在作为模块导入时为模块本身名称。
所以,这个语句的作用就是:当该模块直接运行时执行if__name__=='__main__'中的语句。当该模块作为模块导入到别的文件中时,因为__name__不为__main__,于是这个判断中的语句不能被执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值