引出

这是关于python的及其入门的问题,但是每次在代码中看到,还是会有一些疑惑,记录一下。

作用

python中,变量名前后加双下划线的是内部变量。所以“name”和“main”都是python的内部变量。

.py文件有两种调用方式,一种是直接运行,另一种是通过import以模块的方式导入到另一个.py文件中进行调用。

if __name__ == '__main__':

用来控制代码的执行程度,在这条语句下的代码,作为模块被import时,不会被执行。

原理

内部变量 name 在不同的调用方式下会有不同的赋值。

名为xxx.py的python文件,当直接执行时,赋值为xxx.py,当作为包被import时,赋值为xxx。

main 的赋值始终如一,是xxx.py。

所以当代码作为包被import时,<pre class="brush: cpp">if name == ‘main’:</pre> 为假,其后代码不会被执行。

实验

参考资料

Python中if name == ‘main‘:的作用和原理