首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由变量模糊的ipdb命令

由变量模糊的ipdb命令
EN

Stack Overflow用户
提问于 2016-10-24 17:24:16
回答 2查看 1.1K关注 0票数 3

当我尝试用ipdb调试这个示例脚本时:

代码语言:javascript
复制
n = 1
next = 1
print('end')

我无法执行第3行,因为python变量模糊了pdb命令:

代码语言:javascript
复制
$ ipdb test.py
> /tmp/test.py(1)<module>()
----> 1 n = 1
      2 next = 1
      3 print('end')

ipdb> next
> /tmp/test.py(2)<module>()
      1 n = 1
----> 2 next = 1
      3 print('end')

ipdb> next
> /tmp/test.py(3)<module>()
      1 n = 1
      2 next = 1
----> 3 print('end')

ipdb> next
1
ipdb> n
1
ipdb> !n
1
ipdb> !next
1

当两个命令(n/next)不再被识别时,我如何进一步执行我的代码?(让我们假设s/step也被变量模糊了)。

到目前为止我尝试过的是:

  • 使用ipdb3而不是ipdb --同样的问题(在我的例子中,可能是因为ipdb链接到ipdb3:)
  • 使用pdb -它可以工作! n/next命令移到下一行,而不是显示变量。我的ipdb怎么了?
  • !!n缓解了这个问题--它运行ipdb版本的next。如果我能够alias n !!n,然后反复使用Enter来执行它,这个问题就会为我解决。但是Enter只显示变量n,而不是运行别名n (应该解析为!!n)。

我在用

  • Manjaro Linux 16.10
  • Python 3.5.2 ::Anaconda 4.2.0 (64位)
  • ipdb (0.10.1)
  • ipython (5.1.0)
  • ipython-genutils (0.1.0)
  • 我没有~/..pdbrc文件

编辑

这个问题由:https://github.com/ipython/ipython/pull/10050解决。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-24 19:15:42

2016年12月14日更新:

最后,iPython团队决定使用撤销此设计

解决问题的方法是使用!!语句强制执行标准行为。

代码语言:javascript
复制
> /home/v-zit/test.py(1)<module>()
----> 1 n = 1
      2 next = 11
      3 print('end')

ipdb> n
> /home/v-zit/test.py(2)<module>()
      1 n = 1
----> 2 next = 11
      3 print('end')

ipdb> n
1
ipdb> !!n
> /home/v-zit/test.py(3)<module>()
      1 n = 1
      2 next = 11
----> 3 print('end')

ipdb> next
11
ipdb> !!next
end
--Return--
None
> /home/v-zit/test.py(3)<module>()
      1 n = 1
      2 next = 11
----> 3 print('end')

ipdb>

参考资料:

https://github.com/ipython/ipython/pull/9449

https://github.com/ipython/ipython/pull/10050

票数 2
EN

Stack Overflow用户

发布于 2022-09-25 08:12:00

解决方案是使用括号(variable_name)

例如,如果您有一个可更改的名称为q,您想要检查它,如果您在提示符中直接输入q,那么ipdb调试过程就会中断。

代码语言:javascript
复制
>>> q

相反,您应该输入(q)来验证这个可选性:

代码语言:javascript
复制
>>> (q)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40224066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档