小编Nol*_*erd的帖子

Python 调试器无法识别定义的变量

我正在尝试使用 Python 的调试模块 pdb 查看列表理解调用的结果。然而,pdb“环境”同时声明变量已定义和未定义,从而导致NameErrorpdb 同意定义的变量。以下是复制该问题的最小代码示例:

import pdb
        
def main():
    bar = [0, 0, 1, 1]
    foo(bar)
        
def foo(bar):
    pdb.set_trace()

    ### pdb COMMANDS LISTED BELOW ARE CALLED HERE ###

    print([False if bar[i] == 0 else True for i in range(len(bar))])
        
main()
Run Code Online (Sandbox Code Playgroud)

在上面指示的代码执行点运行以下 pdb 命令会产生以下结果。

(Pdb) p bar
[0, 0, 1, 1]
(Pdb) p [False if bar[i] == 0 else True for i in range(len(bar))]
*** NameError: name 'bar' is not defined
(Pdb) !print([False if bar[i] == 0 else …
Run Code Online (Sandbox Code Playgroud)

python pdb ipdb

4
推荐指数
1
解决办法
818
查看次数

标签 统计

ipdb ×1

pdb ×1

python ×1