Step Over(F8)默认跳过函数内部执行但不跳过函数调用本身;若误入函数,可能是误按Step Into(F7)或未启用跳过规则;Force Step Over(Alt+Shift+F8)可强制跳过含断点的用户函数;全局跳过需在Debugger设置中配置Do not step into列表;循环跳转应使用条件断点而非Step Over。

Step Over 为什么跳不过你写的函数
默认情况下 Step Over(F8)确实会“跳过”函数调用——但它只跳过函数内部的单步执行,函数本身仍会被完整运行。如果你发现按 F8 后还是进了某个函数,大概率是因为该函数被 PyCharm 判定为“用户代码”,而你当前用的是 Step Into My Code 或误触了 Step Into(F7)。检查调试工具栏图标或快捷键是否按错:F8 是 Step Over,F7 是 Step Into。
想彻底绕开函数体?用 Force Step Over
Force Step Over(Alt + Shift + F8)才是真正“不进入、不暂停、不调试”的跳过方式。它强制把整行函数调用当作原子操作执行,哪怕这个函数是你自己写的、哪怕它内部有断点,也不会停。
- 适用场景:
logging.info()、print()、封装好的工具函数(如utils.format_date()),你确定无需 inspect 其内部逻辑 - 注意:它不会跳过异常——如果被跳过的函数抛出异常,调试器仍会在异常抛出处中断
- 快捷键容易和
Step Into My Code(Alt + Shift + F7)混淆,务必核对 IDE 右下角状态栏提示
函数太多,每次手动跳太累?设跳过规则
PyCharm 支持全局跳过特定模块或包,避免反复按 Force Step Over:
PyCharm 2026.2是 JetBrains PyCharm 的指定版本安装包,下载地址指向官方 Windows 安装包直链,可用于旧项目兼容、版本回退和环境测试。
- 打开
Settings → Build, Execution, Deployment → Debugger → Stepping - 在
Do not step into the classes列表里添加你不想进的模块,例如:logging.*、json.*、myproject.utils.* - 勾选
Use step filters when stepping,否则设置不生效 - 效果:此后所有
Step Into和Step Over都自动绕过这些路径,但Force Step Over不受此影响
循环里想跳到第100次迭代?别靠 Step Over 硬扛
Step Over 是逐行执行,对循环无效——按一次只走一次迭代。真要跳到某次循环,必须用条件断点:
- 在循环首行打普通断点,右键 →
More→ 勾选Condition - 输入条件表达式,例如:
iteration_count == 100或len(data) > 500 - 启动调试后,PyCharm 会自动运行到满足条件的那次循环才暂停
- 注意:变量名必须在作用域内可访问;若变量是局部或未定义,条件永远不成立
真正难的不是怎么跳,而是判断该不该跳——跳过函数前,先确认它没副作用、没修改你关心的变量,否则“跳过”反而掩盖问题。

















