【问题标题】:Python debugger (pdb): how does it access variables?Python 调试器 (pdb):它如何访问变量?
【发布时间】:2020-01-18 02:53:13
【问题描述】:

我在测试一段对列表进行排序并返回排序后的索引的代码时遇到了 pdb 的一个不寻常的错误/功能。

mylist = [280, 275]
sorted_inds = sorted(range(len(mylist)), key=lambda i: mylist[i])

这在常规 python 中运行良好,返回 [1, 0]

但是当我在pdb 中尝试时,我得到了NameError

*** NameError: name 'mylist' is not defined

这似乎是因为lambda 函数看不到/无权访问先前定义的列表mylist

我正在寻找进一步了解为什么会这样。为什么它在普通 Python 中可以工作,而在调试器中却不行?调试器中处理变量的方式有什么不同?

【问题讨论】:

    标签: python python-3.x pdb


    【解决方案1】:

    经过一番挖掘,我从 2014 年的 this answer 中找到了 this bug report。最初,决定不修复这个问题,但随后开发了一个补丁来修复它。看来这个补丁还没有实现。

    错误报告中有建议的解决方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多