如何判断Python文件是否作为主模块运行
作者:Jason
时间:2026-01-22
浏览:0
最标准方法是检查name=="__main__",因为直接运行时该变量值为"__main__",导入时为模块名;常用于保护入口代码,需用==而非is,且须置于顶层。
本文目录
最标准方法是检查 name == "__main__",因为直接运行时该变量值为"__main__",导入时为模块名;常用于保护入口代码,需用==而非is,且须置于顶层。

Python 中判断当前文件是否被作为主模块运行,最常用、最标准的方法是检查内置变量 __name__ 的值是否等于字符串 "__main__"。
为什么用 __name__ == "__main__"
每个 Python 模块都有一个内置属性 __name__。当该模块被直接执行(例如通过 python script.py)时,Python 会将其设为 "__main__";而当它被其他模块通过 import 导入时,__name__ 就是模块的文件名(不含 .py),比如 "utils" 或 "my_package.module"。
典型写法:保护入口代码
这种判断常用于包裹测试代码、命令行逻辑或调试内容,确保它们只在直接运行脚本时执行,而不会在被导入时意外触发:
def main():
print("程序开始运行")
if __name__ == "__main__":
main()
常见误判场景与注意事项
- 不要写成
__name__ is "__main__":字符串比较必须用==,因为is比较的是对象身份,不可靠。 - 注意缩进和位置:该判断应放在模块顶层(不缩进),且通常靠近文件末尾,避免被前面的语法错误阻断。
- IDE 运行方式可能影响结果:某些 IDE(如 PyCharm)默认以
-m方式运行,或启用工作目录/环境配置,但只要不是显式import,__name__仍为"__main__"。 - 包内
__main__.py:若想让整个包支持python -m mypackage,需在包目录下添加__main__.py,其内部同样用if __name__ == "__main__":控制逻辑。
作者最新文章
漫蛙漫画在线观看入口
2026-10-13 13:46
Microsoft365商业版怎么用Word多人一起改文档
2026-10-05 15:20
photoshop工具导出文件缓存怎么删除
2026-10-04 11:51
如何卸载python:环境隔离、依赖清理与验证流程的避坑指南
2026-09-05 11:31
anaconda和python区别:环境验证、依赖管理与排错决策
2026-09-05 05:30
下一篇:
Google文档多人协作设置方法
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多










































