首页 >后端开发 >Python教程 >`if __name__ == '__main__':` 在 Python 中做什么,为什么它很重要?

`if __name__ == '__main__':` 在 Python 中做什么,为什么它很重要?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-24 19:30:18920浏览

What Does `if __name__ ==

if __name__ == "__main__": 会做什么?为什么要包含 if 语句?

此代码检查模块是否作为主程序运行(而不是作为模块导入)。如果它作为主程序运行,它将执行 if 语句中的代码。

为什么包含此语句?

  1. 防止意外的脚本执行:

    • 没有通过此检查,导入脚本(例如 import my_script)会无意中运行脚本的代码,即使您只想导入其函数/类。这可能会导致冲突或意外行为。
  2. 防止 pickle 问题:

    • pickling 在 a 中定义的类script 将触发脚本的执行并将脚本导入到 unpickling 环境中。这可能会导致命令行参数和其他特定于脚本的依赖项出现问题。

它是如何工作的?

  • __name__: 当 Python 执行脚本时,它会设置名称变量为“__main__。”
  • 导入模块:当您导入非主模块时,Python会将模块的名称分配给其__name__.

示例:

if __name__ == "__main__":
    print("This code will run when the script is executed.")

# This code will not run when the script is imported.
print("This code will only run when the script is imported.")

这确保第一个代码块仅在直接执行脚本时运行(例如, python my_script. py),而第二个代码块仅在该脚本导入到另一个脚本中时运行(例如, import

高级注意事项:

  • 多个name守卫:一般不建议有多个name 签入单个文件,因为这可能会导致意外
  • 自定义 name 值: 您可以在 if 语句之外手动设置 name 以测试不同的执行场景或提供更多控制脚本执行。

以上是`if __name__ == '__main__':` 在 Python 中做什么,为什么它很重要?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn