Pycharm debug调试:命令行交互式/变量观察watch/evaluate
Debug断点调试是在开发过程中常用的功能,能清楚看到代码运行的过程,有利于代码问题跟踪。
就不用去每次都是去print或者logger容易弄脏代码
观察当前所有变量值
Found out the origin of the problem(发现问题的源头)
Set breakpoints(设置断点)
Stepped through your program(以debug的模式一步一步运行代码)
Created a watch(创建对某个对象的观察)
Evaluated an expression(计算某个表达式)
异常断点,当代码出现某个异常的时候自动停下。不用自己手动打断点。
# *===================================*
# -*- coding: utf-8 -*-
# * Time : 2019-07-29 10:34
# * Author : zhangsf
# *===================================*
import time
def test():
a = 10
a += 1
c = into(a)
print(c)
c = a + 1
c += 1
def d(ss):
print(ss)
def into(c):
print('we are a teaam')
return c
if __name__ == '__main__':
print(d('23'))
begin = now_time = time.time()
test()
end = now_time = time.time()
print(end - begin)
一、debug的step by step
其中各个跳转的按钮的意思如下:
step over —— 遇到函数不会跳进去,而是平躺过去
step into —— 遇到函数跳进去
step out —— 从函数里面跳出来。即跳到上一级。
step into my code —— 忽略库代码,只在业务代码跳
run to cursor —— 代码执行到光标所在的那行

二、命令行交互式
2.1 功能
在程序运行停在断点处时,能够在命令行操作和使用程序中的变量
2.2 办法
用于当前调试会话的内置python shell
在感兴趣代码线上设置一个断点,然后启动调试
当到达断点时,找到调试> “控制台”选项卡,然后单击“显示命令行”图标(请参见屏幕截图)。
这将启用python shell(请注意屏幕截图上的绿色>>>),您可以在其中访问当前作用域中的所有变量,并执行通常在Python shell中执行的所有操作

三、 查看表达式结果
Evaluate就会上图中run to cursor的右边那个类似计算器的按钮
Evaluate Expression:
①、可以即时求值
②、不但可以运行表达式,还可以切换到代码片段模式,运行代码片段
3.1 方式1:打开评估表达式窗口,输入表达式
3.2方式2:选中表达式执行
或选中表达式后右键选择Execute Selection in Console

四、单个变量查看
4.1 鼠标悬停在变量上
要在调试模式下点击断点后查看变量的值,请将鼠标指针悬停在变量上(1-2秒),该变量的值将显示在工具提示中。

4.2打开watch窗口
变量窗口经常有很多变量,查找某变量不方便。这时可以打开watch窗口只观察关注的变量。
(1)打开watch窗口
最下面的Debug中点击Variables标签页,左栏有个眼镜标识,点一下就打开Watches窗口了。
或者在底部的各种窗口中,看见眼睛标识就点。
记得console,variables,watches这几个窗口是可以拖来拖去的,根据个人喜好摆放
(2)观察变量
Variables窗口中的变量可以右击,
依次:Add to Watches, View as array
然后在Watches窗口中可以看到所选数据的具体信息,包括数值。
(3)variables窗口和Watches窗口并列显示
在Debug窗口左侧点击Restore Layout,在Debug窗口的Degugger选项卡页会排布Frames,Variables,Watches
