浅析python的if __name__ == '__main__'语句

环境说明:

系统环境:Ubuntu16.04

Python版本:python3

 

python 中if __name__ = '__main__' 的作用,到底干嘛的?

有句话经典的概括了这段代码的意义:

“Make a script both importable and executable”

意思就是说让你写的脚本模块既可以导入到别的模块中用,另外该模块自己也可执行

 

举个栗子就能明白:

新建一个module.py模块:

hadoop@node1:~$ nano module.py

内容为:

def main():
    print("we are in %s" % __name__)

if __name__ == "__main__":
    print("hello world")
    main()

 

  • 当module.py模块用于运行时:
hadoop@node1:~$ python3 module.py

hello world

we are in __main__

说明if语句被执行了, 推出__name__等于__main__

 

  • 当module.py模块被用于导入例如:>>>import module

进入python命令行,导入module模块,调用一次main()函数命令如下:

hadoop@node1:~$ python3

>>> import module

>>> module.main()

we are in module

可以看到其执行的结果是:we are in module

说明 if语句没有被执行。模块在被导入时,__name__等于模块名称:module

 

总结:

当模块用于运行时,__name__等于__main__”;当模块用于被导入时,”__name__等于模块名称。

通常,if __name__ = '__main__'语句用于模块测试中使用。

这样既可以让“模块”文件运行,也可以被其他模块引入,而且不会执行函数2次。这才是关键。

 

参考:

https://www.cnblogs.com/kex1n/p/5975575.html

https://www.jb51.net/article/56488.htm

https://www.jb51.net/article/68551.htm

 

 

完成!enjoy it!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值