清单 7. 使用函数的例子

import pdb

def combine(s1,s2): # define subrouTIne combine, which.。。

s3 = s1 + s2 + s1 # sandwiches s2 between copies of s1, 。。。

s3 = ‘“’ + s3 +‘”’ # encloses it in double quotes,。。。

return s3 # and returns it.

a = “aaa”

pdb.set_trace()

b = “bbb”

c = “ccc”

final = combine(a,b)

print final

如果直接使用 n 进行 debug 则到 final=combine(a,b) 这句的时候会将其当做普通的赋值语句处理,进入到 print final。如果想要对函数进行 debug 如何处理呢 ? 可以直接使用 s 进入函数块。函数里面的单步调试与上面的介绍类似。如果不想在函数里单步调试可以在断点处直接按 r 退出到调用的地方。

清单 8. 对函数进行 debug

[root@rcc-pok-idg-2255 ~]# python epdb2.py

》 /root/epdb2.py(10)?()

-》 b = “bbb”

(Pdb) n

》 /root/epdb2.py(11)?()

-》 c = “ccc”

(Pdb) n

》 /root/epdb2.py(12)?()

-》 final = combine(a,b)

(Pdb) s

--Call--

》 /root/epdb2.py(3)combine()

-》 def combine(s1,s2): # define subroutine combine, which.。。

(Pdb) n

》 /root/epdb2.py(4)combine()

-》 s3 = s1 + s2 + s1 # sandwiches s2 between copies of s1, 。。。

(Pdb) list

import pdb

def combine(s1,s2): # define subroutine combine, which.。。

-》 s3 = s1 + s2 + s1 # sandwiches s2 between copies of s1, 。。。

s3 = ‘“’ + s3 +‘”’ # encloses it in double quotes,。。。

return s3 # and returns it.

a = “aaa”

pdb.set_trace()

b = “bbb”

c = “ccc”

(Pdb) n

》 /root/epdb2.py(5)combine()

-》 s3 = ‘“’ + s3 +‘”’ # encloses it in double quotes,。。。

(Pdb) n

》 /root/epdb2.py(6)combine()

-》 return s3 # and returns it.

(Pdb) n

--Return--

》 /root/epdb2.py(6)combine()-》‘“aaabbbaaa”’

-》 return s3 # and returns it.

(Pdb) n

》 /root/epdb2.py(13)?()

-》 print final

(Pdb)

在调试的时候动态改变值 。在调试的时候可以动态改变变量的值,具体如下实例。需要注意的是下面有个错误,原因是 b 已经被赋值了,如果想重新改变 b 的赋值,则应该使用! B。

清单 9. 在调试的时候动态改变值

[root@rcc-pok-idg-2255 ~]# python epdb2.py

》 /root/epdb2.py(10)?()

-》 b = “bbb”

(Pdb) var = “1234”

(Pdb) b = “avfe”

*** The specified object ‘= “avfe”’ is not a function

or was not found along sys.path.

(Pdb) !b=“afdfd”

(Pdb)

pdb 调试有个明显的缺陷就是对于多线程,远程调试等支持得不够好,同时没有较为直观的界面显示,不太适合大型的 python 项目。而在较大的 python 项目中,这些调试需求比较常见,因此需要使用更为高级的调试工具。

python 如何调试函数_使用函数 - python断点调试方法相关推荐

  1. python积木式编程_实例讲解python函数式编程

    函数式编程是使用一系列函数去解决问题,按照一般编程思维,面对问题时我们的思考方式是"怎么干",而函数函数式编程的思考方式是我要"干什么". 至于函数式编程的特点 ...

  2. c语言程序 中断函数示例,单片机_C语言函数_中断函数(中断服务程序)

    c语言中的中断函数注意事项 单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统. 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该 ...

  3. python len函数_知识清单Python必备的69个函数,你掌握了吗?

    本文纲要 Python 作为一门高级编程语言,为我们提供了许多方便易用的内置函数,节省了不少开发应用的时间.目前,Python 3.7 共有 69 个内置函数,一些是我们耳熟能详的函数,另一些却不是很 ...

  4. python zip函数_相当于Python的zip函数

    下面是一个更时髦的ECMAScript 6版本:zip= rows=>rows[0].map((_,c)=>rows.map(row=>row[c])) 插图等价物到Python{z ...

  5. python输出字符串居中_字符串函数第一个大写以及字符串居中显示打印金字塔

    此课程与<清华编程高手.尹成.带你实战python入门>大体相同,只需购买其中的一门课程. 本课程由清华大学尹成老师录制,课程的特色在于讲解原理的同时引入了每个程序员都热衷的黑客技术.py ...

  6. python global函数_如何使用python语言中的global关键字获取函数值

    在python语言中,如果在函数外层定义了一个全局变量a,函数内部又有一个同名的局部变量,想要这个全局变量的值改成为局部变量的值,可以使用global.下面利用一个实例说明如何实现这个场景,操作如下: ...

  7. python入门之函数调用内置函数_第九篇 python基础之函数,递归,内置函数

    阅读目录 一 数学定义的函数与python中的函数 二 为何使用函数 背景提要 三 函数和过程 四 函数参数 五 局部变量和全局变量 六 前向引用之'函数即变量' 七 嵌套函数和作用域 八 递归调用 ...

  8. python中add函数_如何使用python中的add函数?

    之前向大家介绍过python中的求和函数sum函数,numpy中的sum函数,对于数组可以指定维度进行相加.numpy中还有另一种求和运算方法,即add函数.add函数不仅作用于numpy中加法运算, ...

  9. python 参数个数 同名函数_如何在python中编写不同参数的同名方法

    我在Java背景下学习Python(3.x). 我有一个python程序,我在其中创建一个personObject并将其添加到列表中.p = Person("John") list ...

最新文章

  1. python turtle画滑稽_使用python的turtle函数绘制一个滑稽表情的方法
  2. zookeeper+kafka集群部署+storm集群
  3. Hadoop 2.X 从入门到精通系列视频课程套餐
  4. Ubuntu 18的中文界面切换《图解教程》亲测成功
  5. C# ASPX页面做上传提示:超过了最大请求长度,解决方法
  6. ib交换机 postgresql_postgresql关于访问视图需要的权限
  7. 内存管理之智能指针shared_ptr
  8. 虚拟机win7纯净版镜像_win7旗舰版-虚拟机镜像文件怎么下载安装
  9. 软件项目管理测试文档,软件项目管理具体方法体系示例
  10. 浅析Java的线程和Golang的协程
  11. 史玉柱自述:我是如何带队伍的
  12. 手机在泰国显示无服务器,怎么连接泰国服务器
  13. 【汇正财经】企业资本的具体形式
  14. 仿新浪抢工长装修招标网站源码
  15. 握手,交流从掌心开始
  16. 还在呼吸致命空气?专业的斐讯空气检测仪,让你生活更健康!
  17. 复旦大学计算机科学技术学院院长姜育刚:人工智能算法治理|达观WAIC回顾
  18. python的OGR库获取geometry属性返回None,feature.geometry()
  19. html网页里如何竖着打字,搜狗输入法怎么设置为竖排显示 怎样把横向打字变成竖向...
  20. 导入shp数据到postgis库

热门文章

  1. 微信小程序快捷键设置
  2. Microsoft.Office.Interop.Word删除word文档末尾的空页面(空段)
  3. photoshop打开文件提示 无法完成请求,因为文件格式模块不能解析该文件
  4. Python3.10升级记录
  5. 【Git-10】Eclipse中Git分支管理
  6. 世纪华通2020年业绩持续领先:商业模式愈发成熟,优秀质地突出
  7. Docker之镜像、容器基础操作
  8. Flutter实现二进制操作对象ByteArray
  9. 解决You are using pip version 9.0.1, however version 18.0 is available. You should consider upgrading
  10. python图片像素化_Python实现图片像素化的代码实例