鼓吹用Python的我,被C程序员的一个问题轰成渣

熟悉我的老铁们都知道,我现在做嵌入式软件开发,日常用C语言来写BUG(皮一下)。

由于今年公司今年业绩不好,部分项目处于停摆阶段,我参与的一个项目也被叫停。

之后,我在公司比较闲散。但年轻人闲不住,精力很旺盛,我就把python拿来玩一玩。

背景

今天,在公司用python写一个从几百个文件夹中提取特定 .c 文件的脚本。

我们Team的同事 文 在做测试,看到我用python写的代码,随口问了句,你这代码里的if name == "main": 是什么意思。

那一瞬间,我是蒙的。

他在说什么,我写过这段代码吗?

仔细一看,代码里还真有。我支支吾吾解释了半天,最终放弃了,因为真的不知道答案。

回想午饭时,还在他们面前吹牛逼python多么好用,现在被同事随口一问题轰成渣,恨不得找个地洞钻进去。

寻找答案

既然发现问题,那就肯定要打破砂锅问到底。

去优快云看了看别人的文章,他们对这个问题解释的比较绕,但大致能明白什么意思。

但看别人说,不如自己用代码实现一遍。

接下来,是简单的实现步骤。

如果程序中有:if __name__ == "__main__"。例:程序demo.py。

 

在IDLE中直接运行demo.py,那么 print(__name__)输出为 “__main__”。

此时if __name__ == "__main__" 为真,if 条件中的程序能够运行。

但在python的第三方库目录中,建立Coder文件夹,并将demo.py放进去。

在python IDIE中使用 from Coder import demo 时,print(name)输出为“Coder.demo”。

此时,if __name__ == "__main__" 为假,if 条件中程序不能执行。

总结

经过上述测试,老铁们应该理解为什么程序中会有if __name__ == "__main__"的工作原理了吧。

对于这段代码,我的理解是:在程序中写了一个Class,有的人或许随手就写了执行代码(主体程序),但如果某天要使用该代码的类,直接import这个文件,程序运行可能会出现问题。

但如果在程序主体前添加 if name=="main" ,import该文件时,if条件句中的程序将不会执行,保证代码的可用性。

反思

(1)我用Python写过很多程序,但仍有很多细节不明白。这需要在以后用Python的过程中多多留心。

(2)当然,让别人review自己的代码也是一个不错的提高方式。他们这些专业coder总会以最专业的视角提供好的建议。

既然把问题搞明白了,周一上班就去给同事文解答疑惑。

欢迎关注
PS. 长按关注"酷酷的coder",从汽车行业成功转行程序员,分享转行后学到的各种知识和感悟。

酷酷的coder
酷酷的coder

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值