为什么无法在 VSCode 调试控制台中删除 Python 变量?

wis*_*cky 5 python visual-studio-code vscode-debugger

当我逐行执行代码时,我在 VS Code 调试器中遇到了这种奇怪的行为。

之前print(var1),当我del var1在调试控制台中执行时,它将删除var1,并且下一行print(var1)将按预期失败。

但是,在 中main(),当我del var2在调试控制台中执行时,它没有执行任何操作。下一行print(var2)执行成功。var2 = 'new'将更改调试控制台中的值,但del var2不会删除变量。

这种不一致的行为有什么原因吗?VS Code Debug Consol 似乎不会删除函数内的变量。当我使用 进行相同的调试时pdb,它按预期工作(var2被删除)。

var1 = 'value1'
# del var1 (in vscode Debug Console)
print(var1)

def main():
    var2 = 'value2'
    # del var2 (in vscode Debug Console)
    print(var2)

main()
Run Code Online (Sandbox Code Playgroud)

VS Code v1.61.1(2021 年 9 月)
Python v3.9.5