if __name__ == '__main__'

本文介绍Python中if __name__ == '__main__'的作用:判断.py文件是否直接运行而非被导入。适用于模块独立测试。

参考文献:

http://www.cnblogs.com/xuxm2007/archive/2010/08/04/1792463.html

http://bbs.youkuaiyun.com/topics/320265093

转载请附上以上链接。

 

文献1: 

当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用.

        模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。

///////////////////////////////////////////////////////////////////////////////////////////////////

在cmd 中直接运行.py文件,则__name__的值是'__main__';

而在import 一个.py文件后,__name__的值就不是'__main__'了;

从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件

详细例子,点击文献1.

 

文献2:

你运行当前脚本,就会执行if __name__=="__main__"下的函数,如果你是当模块被其他程序import的,那么就不会执行。主要是测试用,测试你写的这个模块有没有实现你想要的功能。

一般来说python写的文件既可以运行,也可以作为模块来被其他程序调用。

当程序是自身运行时,其__name__的值就是字符串"__main__"了,如果是被其他程序调用,那么它的__name__的值就不是字符串"__main__",使用下面这个判断的作用就是使程序只有在自身被运行的情况下才执行,如果只是被调用,那么就不运行了。

例如,有一个python程序是main.py,代码如下:

1 def run():
2     print "你好,世界!"
3 
4 if __name__=="__main__":
5     run()

当你双击main.py时,那么这个程序就会运行了——因为它的__name__的值为"__main__"。

当你在其它程序中调用这个main.py文件,例如use.py:

1 import main.py #此处把前面的main.py作为模块调用
2 
3 if __name__=="__main__":
4     main.run() #调用main.py中的run()函数!

 

转载于:https://www.cnblogs.com/Wanggcong/p/5156667.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值