写Pythonref="/tag/131/" style="color:#643D3D;font-weight:bold;">代码时,遇到程序跑得不对,光靠print到处打印变量值太麻烦。这时候,用PyCharm的断点功能,能让你像侦探一样一步步查问题。
怎么设置一个基础断点?
打开PyCharm,找到你想调试的代码行,直接在行号左边的空白处单击一下,就会出现一个红点——这就是断点。比如你有这么一段代码:
def calculate_total(items):
total = 0
for item in items:
total += item
return total
items_list = [10, 20, 30]
calculate_total(items_list)
如果想看看循环里每次total是怎么变的,就在total += item这一行加个断点。运行程序时选择“Debug”模式,执行到这行就会自动停下来。
不想停那么多次?试试条件断点
有时候断点在循环里,但你只关心某个特定情况。比如上面的例子,你只想在item == 20的时候停下来。右键点击已设的断点,选择“Edit breakpoint”,输入item == 20作为条件。这样程序只会在这个条件下暂停,省得一遍遍按“继续”。
临时不需要断点?可以禁用
断点设多了容易乱。不想删掉,又暂时不想让它生效?把鼠标移到断点上,点击旁边的小勾选框,把它变成灰色就行。需要时再点一下恢复。
日志断点:不中断也能输出信息
有些时候你只是想打个日志,不想打断程序流程。右键断点,选“Log message to console”,然后输入你想看的内容,比如Current item: {item}。调试运行时,它会把值打印出来,但不会停下来等你操作。
函数调用深?用“步入”和“跳出”理清逻辑
调试时点“Step Over”是逐行执行,但如果遇到函数调用,想进函数里面看看,就点“Step Into”。要是误进了一个系统函数,不想继续深入,用“Step Out”直接跳回来。这些按钮在Debug窗口里都有图标,多试几次就熟悉了。
熟练用好断点,你会发现查bug不再是碰运气的事。花几分钟学会这些设置,以后写代码底气足多了。