在Python中,if __name__ == '__main__':
是一个常用的代码结构,其核心作用是区分模块的直接执行与导入调用。
工作原理
- 每个Python文件都包含内置变量
__name__
- 当文件被直接执行时,
__name__
会被赋值为'__main__'
- 当文件被作为模块导入时,
__name__
会被赋值为模块名称
典型应用
# module.py
def test():
print("函数被调用")
if __name__ == '__main__':
test() # 直接运行本文件时执行
使用场景
- 测试代码隔离:防止模块导入时自动执行测试代码
- 模块复用:允许文件同时作为可执行脚本和可导入模块
- 入口控制:明确程序的启动入口
示例说明
创建两个文件:
# main.py
import module # 不会触发module.py中的test()调用
# module.py
def demo():
print("功能函数")
if __name__ == '__main__':
demo() # 直接运行module.py时会执行
当直接运行module.py
时会输出"功能函数",而通过main.py
导入时不会触发该调用。这种设计模式使代码既可作为独立程序运行,也能安全地被其他模块复用。