文章目录


Python关于​​if _name_ == "_main_"​

0.为什么使用__name__属性

Python解释器在导入模块时,会将模块中没有缩进的代码全部执行一遍(模块就是一个独立的Python文件)。

开发人员通常会在模块下方增加一些测试代码,为了避免这些测试代码在模块被导入后执行,可以利用​​__name__​​属性。

1.它是python的程序入口。

学过Java、C、C++的程序员应该都知道,每次开启一个程序,都必须写一个主函数作为程序的入口,也就是我们常说的main函数。如下所示, main()就是Java中的一个main函数。

与Java、C、C++等几种语言不同的是,Python是一种解释型脚本语言,在执行之前不同要将所有代码先编译成中间代码,Python程序运行时是从模块顶行开始,逐行进行翻译执行,所以,最顶层(没有被缩进)的代码都会被执行,所以Python中并不需要一个统一的main()作为程序的入口。在某种意义上讲,“if​​__name__=="__main__”​​也像是一个标志,象征着Java等语言中的程序主入口,告诉其他程序员,代码入口在此。

这是“​​if __name__=="__main__”​​这条代码的意义之一。

2.解释

Python关于`if _name_ == “_main_“`_python

因此​​__name__ == '__main__'​​就表示在当前文件中,可以在​​if __name__ == '__main__'​​条件下写入测试代码,如此可以避免测试代码在模块被导入后执行。

参考文章

​传送门1​

​传送门2​

​传送门3​