Python 中 __name__ == '__main__' 的含义
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()
好处:
- 代码可被导入而不执行副作用
- 方便测试(直接运行时执行测试)
- 明确的入口点
- 符合 Python 最佳实践