if __name__ == '__main__':
是Python中常见的条件判断语句,用于控制代码的执行方式。具体含义和用途如下:
1️⃣含义
__name__
是Python的内置变量,表示当前模块的名称。
当一个Python文件(模块)被直接运行时,其 __name__
会被自动设置为 '__main__'
。
如果该文件是被其他模块导入的,则 __name__
会保留模块的原始名称(如文件名 example
)。
2️⃣为什么使用它?
-
区分直接执行与导入
通过该条件判断,可以让同一份代码在不同场景下选择性执行:
直接运行该文件时,if __name__ == '__main__':
下的代码会被执行。- 被其他模块导入时,这段代码不会自动执行。
-
模块化与复用性
- 当编写一个既包含功能函数又包含测试代码的模块时,可以用此语句将测试代码隔离。例如:
def add(a, b):return a + bif __name__ == '__main__':print(add(2, 3)) # 直接运行时才执行测试
- 其他模块导入该文件时,不会触发测试代码,仅使用
add
函数。
- 当编写一个既包含功能函数又包含测试代码的模块时,可以用此语句将测试代码隔离。例如:
-
避免副作用
如果模块在被导入时自动执行某些操作(如打印日志、初始化变量),可能会导致意外行为。通过此语句可以避免这类问题。
总结
if __name__ == '__main__':
的核心作用是判断当前模块是否作为主程序运行,从而灵活控制代码的执行逻辑。这是Python模块化编程的最佳实践之一,提升了代码的可维护性和复用性。