python 是咋debug的
1、Python 报语法错误,会提示在多少行,啥语法错误。
2、可以用pdb 在命令行单步调试。
3、可以用ide或编辑器按照插件调试。
4、可以在代码中加print 调试
5、可以设置logging 用于捕获错误信息,用来调式。
■网友
一般情况下,想要知道哪一行代码在运行、哪一行不运行、本地变量的值是多少时,大部分人会使用 print 函数,在关键部分打印某个或某组变量的值、形状、类型等信息。
【python 是咋debug的】 换这个GitHub万星的工具试试吧。
本文经机器之心(ID:almosthuman2014)授权转载,禁止二次转载。参与:思源print 函数已老,DeBug 该靠 PySnooper 了~小伙伴们,你们都怎样 DeBug Python 代码?是不是常用 print 大法?在本文介绍的这个项目中,deBug Python 代码再也不需要 print 了。只要给有疑问的代码加上装饰器,各种信息一目了然,找出错误也就非常简单了。
这个名为 PySnooper 的项目是刚开源的,仅仅一周就获得了近10K+ 的 Star 量,当然这还没结束,这个收藏量也会继续刷新。
项目地址:http://github.com/cool-RR/pysnooper
Python 怎样 DeBug?如果写着写着模型,发现模型不 work 了,那么你该怎样找出 Python 的错误语句?这种错误一般与语法无关,而是某个变量的运算发生了错误。接下来我们就要慢慢找哪个地方有问题了,这里最常见、最直观的方法就是 print 大法。把我们怀疑的变量打印出来,总会找到异常的地方。
如果代码中嵌入了单元测试,例如 assert 语句,那么还能缩小一些怀疑范围。但通常我们都要多次尝试,打印多个变量才能找到错误的地方。在 PyTorch 或 Keras 这样的动态计算图还好,打印出来的直接是一个值,像 TensorFlow 这样的静态计算图,打印出来是张量信息而不是值,这就很尴尬了。
实际上不止是机器学习,在我们写 Python 的时候,总是想搞清楚为什么写的代码在运行时有点不大对。很多读者乐于使用断点等成熟的 DeBug 工具,也有的直接使用 print 大法找错误的地方。但现在我们不需要担心了,本文将介绍一个新的开源工具,它信心满满地呼吁到:「不要再使用 print 函数来 DeBug 啦~」
极简DeBug工具PySnooper一般情况下,想要知道哪一行代码在运行、哪一行不运行、本地变量的值是多少时,大部分人会使用 print 函数,在关键部分打印某个或某组变量的值、形状、类型等信息。
而 PySnooper 让你能快速地获得这些信息,且相比之下它不需要细致地写 print 函数,只需要向感兴趣的函数增加一个装饰器就行了。我们会得到该函数的详细 log,包含哪行代码能运行、什么时候运行以及本地变量变化的确切时间。
相比于其他代码智能工具,PySnooper 为何如此优秀?因为不需要任何设置,你就可以在劣等、不规则的企业代码库上使用 PySnooper。只需要加个装饰器,并为日志输出地址指定路径就行了。
这样说可能不太直观,下面我们可以具体看个案例,PySnooper 的优秀就能一目了然。
PySnooper 案例下面项目作者写了一个函数以将数值转换为二进制码,该函数返回的是一个二进制列表。下面我们将装饰器 @pysnooper.snoop() 加到该函数上,就大功告成了。import pysnooper@pysnooper.snoop()def number_to_bits(number): if number: bits = while number: number, remainder = divmod(number, 2) bits.insert(0, remainder) return bits else: return number_to_bits(6)
推荐阅读
- 怎样成为一名合格的Python程序员?
- 电信主动上门维修是咋回事
- python 爬虫,咋获得输入验证码之后的搜索结果
- python的html5lib这个库咋使用啊我在网上也没有找到相关文档
- 电商网站支付流程的流失率是怎么样的从用户点击充值/支付按钮,到支付完成,其中每一步的流失比率都是咋样的
- 零基础入门学习啥语言好
- 圣才教育网站招募创业学生是咋回事
- 作为一个打码的,有没有一段时间特不想打码,后来是咋熬过来的
- 2016年5月5日腾讯的微信和QQ在App Store搜不到了是咋回事
- Python3.4和3.5区别大么
