CodeWalk

Python 中 __name__ == '__main__' 的含义

作者:孤独的心 · 2026-05-30 12:55

if __name__ == '__main__': 在 Python 脚本中的作用是什么?为什么这是一个好的编程习惯?

回答

孤独的心

__name__ 是模块的内置属性:

  • 当模块直接运行时,__name__'__main__'
  • 当模块被导入时,__name__ 为模块名
# utils.py
def helper():
    print('Helper called')

if __name__ == '__main__':
    # 测试代码,只在此文件直接运行时执行
    helper()
# main.py
import utils  # 导入时不会执行测试代码
utils.helper()

好处

  1. 代码可被导入而不执行副作用
  2. 方便测试(直接运行时执行测试)
  3. 明确的入口点
  4. 符合 Python 最佳实践