Python PyCharm如何进行断点调试


Posted in Python onJuly 05, 2019

编辑器不等于IDE(集成开发环境),开发python程序,不是只有一种print()打印输出调试。

术业有专攻,于人如此,于一个软件也是如此。让专业的软件做专业的事。

以上两点得出的结论:PyCharm

我们以如下的一种常见错误,来演示如何通过PyCharm断点追踪的方式发现程序中的错误:

def foo(bar=[]):
  bar.append('bar')
  return bar
>>>foo()
['bar']
>>>foo()
['bar', 'bar']
>>>foo()
['bar', 'bar', 'bar']

这里存在一个常见的错误就是误以为:函数在每次不提供可选形参时将参数设置为默认值,也就是本例中的[],一个空的list。

这里我们便可以通断点调试的方式进行追踪,在每次函数调用(不显示传递形参)时,观察形参值的变化。
如图所示为:

Python PyCharm如何进行断点调试 

下图是以这段为例,来演示如何发现程序中的bug:

Python PyCharm如何进行断点调试

解决方案:

def foo(bar=None):
  if not bar:
    bar = []
    bar.append('baz')
  return bar
>>>foo()
['baz']
>>>foo()
['baz']

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python解析xml文件实例分享
Dec 04 Python
Python数组遍历的简单实现方法小结
Apr 27 Python
python+selenium+autoit实现文件上传功能
Aug 23 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
Nov 01 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
基于PyQt4和PySide实现输入对话框效果
Feb 27 Python
使用Django开发简单接口实现文章增删改查
May 09 Python
Python3 Tkinter选择路径功能的实现方法
Jun 14 Python
Python argparse模块使用方法解析
Feb 20 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
python实现简易名片管理系统
Apr 11 Python
Opencv中cv2.floodFill算法的使用
Jun 18 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
Jul 04 #Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 #Python
python绘制已知点的坐标的直线实例
Jul 04 #Python
Python实现平行坐标图的两种方法小结
Jul 04 #Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 #Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 #Python
libreoffice python 操作word及excel文档的方法
Jul 04 #Python
You might like
常见php数据文件缓存类汇总
2014/12/05 PHP
php通过curl模拟登陆DZ论坛
2015/05/11 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
javascript 将共享属性迁移到原型中去的实现方法
2016/08/31 Javascript
浅析jQuery操作select控件的取值和设值
2016/12/07 Javascript
jQuery插件FusionCharts实现的3D柱状图效果实例【附demo源码下载】
2017/03/03 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
搭建一个Koa后端项目脚手架的方法步骤
2019/05/30 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
layui-select动态选中值的例子
2019/09/23 Javascript
Django Highcharts制作图表
2016/08/27 Python
基于Python对象引用、可变性和垃圾回收详解
2017/08/21 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
python消费kafka数据批量插入到es的方法
2018/12/27 Python
Python学习笔记之图片人脸检测识别实例教程
2019/03/06 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
CSS3 background-image颜色渐变的实现代码
2018/09/13 HTML / CSS
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
微信营销策划方案
2014/02/24 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
Django实现drf搜索过滤和排序过滤
2021/06/21 Python