Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在用pdb调试python时更改值?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想运行pdb,单步执行代码,并在某个时刻更改由某个名称指向的值。所以我可能想更改名为“stationLat”的值。但我似乎做不到。举个例子:</p> <pre><code>>>> import extractPercentiles >>> import pdb >>> pdb.run( "extractPercentiles.extractOneStation()" ) > <string>(1)<module>()->None (Pdb) s --Call-- > /scratch/extractPercentiles.py(96)extractOneStation() -> def extractOneStation() : (Pdb) tbreak 132 Breakpoint 3 at /scratch/extractPercentiles.py:132 (Pdb) c Deleted breakpoint 3 > /scratch/extractPercentiles.py(132)extractOneStation() -> stationLon = float(stationLoc[3]) </code></pre> <p>所以现在我在一个地方,我想改变stationlat的值。Pdb似乎允许我将stationLat设置为一个新值,但当我检查该值时,它保持不变:</p> <pre><code>(Pdb) stationLat -34.171100000000003 (Pdb) stationLat = -40 (Pdb) stationLat -34.171100000000003 (Pdb) !stationLat = -40 (Pdb) stationLat -34.171100000000003 (Pdb) </code></pre> <p>你看我试过用!同样,没有成功。</p> <p>pdb手册上说我应该能够改变变量:</p> <p><em>调试器无法识别的命令被假定为Python语句,并在被调试程序的上下文中执行。Python语句也可以以感叹号(!)作为前缀。这是一种检查正在调试的程序的强大方法;<strong>甚至可以更改变量或调用函数</p> <p>这是一个范围问题吗?这和我开始pdb的方式有关吗?我尝试了嵌入的“pdb.set_trace”习惯用法,得到了相同的结果。</p> <p>谢谢你的阅读。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>实际上,在pdb中分配新值时,变量的值确实会发生更改。但是,如果您尝试在pdb中再次读取变量而不运行代码,它可能会重置为原始值。</p> <p>如果您回到代码中,您应该看到它将使用您的新值(-40)。</p> <p>试试这个:</p> <pre><code>stationLat = -40 s # step back into code stationLat # should display -40 </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
python语法错误(如果不在Z中,则在X中表示s)
6 回答
Python语法错误(无效)概率
6 回答
python语法错误*带有可选参数的args
1 回答
python语法错误2.5版有什么办法解决吗?
8 回答
Python语法错误2.7.4
10 回答
python语法错误30/09/2013
8 回答
Python语法错误E001
4 回答
Python语法错误not()op
5 回答
python语法错误outpu
2 回答
Python语法错误print len()
4 回答
python语法错误w3
3 回答
Python语法错误不是caugh
4 回答
python语法错误及yt-packag的使用
7 回答
python语法错误可以查出来!!瓦里亚布
6 回答
Python语法错误可能是缩进?
3 回答
Python语法错误和缩进
6 回答
Python语法错误在while循环中生成随机numb
2 回答
Python语法错误在哪里?
9 回答
python语法错误在尝试导入包时,但仅在远程运行时
5 回答
Python语法错误在电子邮件地址提取脚本中
9 回答