Python应用技术

Python:if __name__ == '__main__'

2020-03-21  本文已影响0人  AI秘籍

1. 含义和作用

对于一个python文件,其通常有两种使用方法,
①是作为脚本直接执行,
②是 import 到其他的 python 脚本中被调用(模块重用)执行。
因此 if _ name _ _ == ' _ _ main _ _': 的作用就是控制这两种情况执行代码的过程,在 if _ name _ _ == ' _ _ main _ _': 下的代码只有在第一种情况下(即文件作为脚本直接执行)才会被执行,
而 import 到其他脚本中是不会被执行的。

举例说明如下:
①直接执行:


image.png
结果

可以成功 print 两行字符串。
即,if _ name==" main _": 语句之前和之后的代码都被执行。

②import执行:


image.png 结果

只print了第一行字符串。
即,if name=="main": 之前的语句被执行,之后的没有被执行。

2. 运行原理

其实,在每个python文件中都包含内置的变量_ _ name _ ,
当该文件被直接执行的时候,
_ name _ 的值就等于文件名包含后缀名.py;
当该文件被import到其他文件中执行时,
_ name _ 的值等于模块该文件的名称不包含后缀名.py.
然而
_ _main _ _的值始终等于当前文件的名称包含.py;

因此,执行if语句的时候,_ _ name _ _ == '_ _ main _ _'判断为真或假.

test.py image.png import_test.py
image.png

总结:

当直接执行时,_ _ name _ _ == '_ _ main _ _' == 该文件名称包含.py;

当import执行时,

_ _ name _ _ ==该文件名称不包含.py ≠≠ '_ _ main _ _' == 该文件名称包含.py;

参考:

  1. https://blog.csdn.net/heqiang525/article/details/89879056
上一篇 下一篇

猜你喜欢

热点阅读