__main__用法大揭秘

欢迎加入我们卧虎藏龙的python讨论qq群:729683466

大家在网上下载python代码的时候

有时候会遇到这样的问题

有些工程里面包含了很多py文件

其中只有一个主函数

如何让这么多py文件协同工作

何为主何为次

这都是一些比较小但是很重要的问题

if __name__="__main__"是非常常见,但是很不好理解的一种语法。

简单来说,当一个工程里面有好几个py文件的时候,比如:

很多人会说,当然那个main是主函数啊,上面写着main啊。

大错特错

虎皮辣椒没有虎皮,鱼香肉丝也没有鱼。

当然,main函数也不一定是“main”函数

那么,哪个才是真正的主函数呢?其实很简单,如果你打开main函数,点击运行,那么main函数就是主函数,如果在运算过程中需要导入mokuai.py。那么这个工程的特点就是main函数的__name__就是“__main__”。

相反,如果你没有打开main.py,而是打开了mokuai.py,然后运行,这时候,mokuai.py就成了"__main__".py。

换句话说,你运行哪个py,哪个py就是主函数,其他的py就都是你调用的模块

比如我在c.py文件里点击Run,然后print(__name__),那么得到的就是__main__。也就是说,直接运行c.py的时候,这个函数就是__main__。

相反,如果我们把c当做一个模块导入的时候呢?

print(__name__)还是不是__main__。??

我们做一个小实验就知道了,

我们运行d.py文件,在d.py文件里面import c。这时候,我们看到运行的结果里面的print(__name__)的结果是c。不是__main__。也就是说,当导入c.py文件的时候,这个c.py已经不是主函数了,当然它的__name__也就不是__main__了。

那么,话又说回来了,设定这个函数的作用是什么了。其实很简单,就是让python知道哪个是主函数,哪个是需要导入的模块。

在编写程序的时候,我们不能一下全部写好所有的函数,有时候需要测试模块的功能,所以经常在模块里面写一些测试函数,这时候是直接在模块里面点击Run运行,这时候模块是主函数,当程序完成以后,不需要这些测试代码,就可以用if __name__=="__main__"的方法来判断。

作者|齐

编辑|齐

感谢大家观看

有钱的老板可打赏一下小编哦

图片来源:

https://images.pexels.com/photos/346768/pexels-photo-346768.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=500

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值