if __name__ == "__main__":
的主要意义是区分脚本是被直接运行还是被作为模块导入。
直接运行脚本,也就是右键直接运行或者python xx.py
,或者鼠标运行:
- 如果你直接运行一个 Python 脚本(例如,使用
python script.py
),该脚本的__name__
值将被设置为"__main__"
。
因此,if __name__ == "__main__":
块中的代码将会执行。
作为模块导入:
如果该脚本被另一个 Python 脚本导入(例如,import script
),该脚本的 __name__
值将被设置为模块的名称(即 script)。
在这种情况下,if __name__ == "__main__":
块中的代码将不会执行。
这个结构的主要用途包括:
防止测试代码执行:你可以在脚本底部编写一些测试代码,只有在脚本被直接运行时才会执行,而不会在导入时执行。
模块化代码:可以将代码组织成模块,使其既可以独立运行(用于测试或执行特定任务),又可以被其他脚本导入并重用。
PS:当点击if __name__ == "__main__":
前面的执行符号时,代码会从上往下执行,并不是从if
开始执行