1、含义
(1)__name__ 是 Python 的一个内置变量:
当一个模块(.py 文件)被直接运行时,__name__ 的值会被自动设置为 '__main__'。
如果模块是被其他文件导入的(import),__name__ 的值则是模块的文件名(不含 .py 后缀)。
(2)if __name__ == '__main__': 的作用:
判断当前模块是否是主程序入口。
如果是主程序,则执行该条件下的代码块;如果是被导入的模块,则跳过。
2、why?
(1)区分“直接运行”和“被导入”两种场景
直接运行:希望执行某些代码(如测试、主逻辑)。
# m.py
def hello():
print("Hello!")
if __name__ == '__main__':
print("Hi!")
hello()
被导入:不希望执行这些代码(仅提供函数/类给其他模块用)。
# n.py
import m
m.hello()
(2)避免导入时执行不必要的代码
如果没有这个判断,模块被导入时可能会意外执行测试代码或初始化操作。