目录
if __name__ == '__main__': 是 Python 中一个常见的代码结构,它的作用是判断当前模块是被直接运行还是被导入。以下是详细解释:
1. 含义解析
-
__name__是 Python 的内置变量 -
当模块被直接运行时,
__name__的值会被设为'__main__' -
当模块被导入时,
__name__的值会是模块的文件名(不含.py后缀)
2. 为什么需要它?
主要用途是区分模块的两种使用方式:
场景 1:直接运行(作为主程序)
python myscript.py
此时 if __name__ == '__main__': 下的代码会执行
场景 2:被其他模块导入
import myscript
此时 if __name__ == '__main__': 下的代码不会执行
3. 实际作用(为什么重要?)
| 场景 | 没有 if __name__... | 有 if __name__... |
|---|---|---|
| 直接运行 | 全部代码都会执行 | 只有指定部分的代码会执行 |
| 被导入时 | 全部代码都会执行(可能产生副作用) | 不会执行测试代码 |
4.注意常见错误写法
-
错误:
if _name_ == '_main_':(下划线数量不对) -
正确:
if __name__ == '__main__':(双下划线)
类比理解
就像手机的两种模式:
-
直接运行 = 正常使用模式(所有功能可用)
-
被导入 = 维修模式(只提供基础功能)
这个机制是 Python 模块化编程的重要基础。
1万+

被折叠的 条评论
为什么被折叠?



