if __name__ == “__main__”:的作用和原理

一个python文件通常有两种使用方法:

(1)作为脚本直接执行,

(2)import 到其他的 python 脚本中被调用(模块重用)执行。

每个python模块(python文件,也就是此处的 main.py 和 demo2.py)都包含内置的变量 __name__,当该模块被直接执行的时候,__name__ 等于文件名(包含后缀 .py );如果该模块 import 到其他模块中,则该模块的 __name__ 等于模块名称(不包含后缀.py)。而 “__main__” 始终指当前执行模块的名称(包含后缀.py)。进而当模块被直接执行时,__name__ == 'main' 结果为真。

因此 if __name__ == 'main': 的作用就是控制开头两种情况执行代码的过程。在 if __name__ == 'main': 下的代码只有在第一种情况下才会被执行,而 import 到其他脚本中是不会被执行的。

举例说明如下:

一. 直接执行

在文件夹新建名称为demo2.py 的脚本,在demo2.py中写入以下代码:

# 文件:demo2.py
print('Hello World!')
if __name__ == '__main__':
    print('World Record')

输出,可以成功输出两行字符串:

Hello World!
World Record

二. import导入运行:

在main.py中导入之前的demo2:

import demo2

输出:

Hello World!

只输出了第一行字符串。即,if __name__=="__main__": 之前的语句被执行,之后的没有被执行。

猜你喜欢

转载自blog.csdn.net/qq_54708219/article/details/129324454