美文网首页python交流学习
python项目中为什么经常看见“ if __name__ ==

python项目中为什么经常看见“ if __name__ ==

作者: 78c40b03ee4e | 来源:发表于2019-02-19 18:59 被阅读2次

    前言

    尽管大家在编写python会允许你像shell脚本一样,把大量代码堆积在一起,但是,有很多python入门的书籍,都会建议封装一个函数去写(面向对象也可以写),然后在最后统一调用,例如这样 :

    def main(): 
    #具体代码   
    if __name__ == '__main__':
        main()
    

    很多文章都会说这是由于代码样式等原因,但实际上,不这样写,有时会直接导致错误。

    例如,打开python的一个字节的class变量部分,可以在这里看到在线版本,然后在中间复制示例代码,运行,就可以看到预期的正确结果。

    但是现在将代码中的所有“swaroop”替换为“xxx1”,将所有“kalam”替换为“yyy1”,然后再次运行,在程序结束时,您将得到这样一个奇怪的错误(python 2.6.5实验):

    异常属性错误:>忽略中的“nonetype”对象没有属性“population”

    也就是说,如果我们改变变量名,程序就会出错…

    原因是,当Python最终销毁所有类和对象时,它不处理这些对象之间的依赖关系,而是根据变量的名称决定某种顺序操作。因此,Person类本身在YYY2之前就被销毁了,所以当您解构YYY2时,您将执行它的Del_()方法,并发现父类已经不存在了。~~

    这在Python解析器中应该是一个bug,但是如果您将本例中类人员之外的所有代码写入一个main()函数并通过上面的方法调用它,就不会发生这种情况。

    所以,你最好不要太注意几行代码,养成这个好习惯。

    小编推荐一个学python的学习qun 740322234

    无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

    相关文章

      网友评论

        本文标题:python项目中为什么经常看见“ if __name__ ==

        本文链接:https://www.haomeiwen.com/subject/zugfyqtx.html