在VS Code中,发送Python代码到终端时,为何需要重新发送已编辑变量的赋值行?
在我使用VS Code写代码的时候,运行代码一切正常。但是当我修改了代码并按下ctrl + s后,终端里的内容却没有更新。
举个例子,我想打印一个变量的值,修改了这个变量的值后,按ctrl + s保存了更改,但打印出来的结果还是之前的值。
我之前以为正常的解决办法是用shift + enter来运行我想更新的代码,这样才能看到更改的效果。结果我朋友告诉我这并不是常规做法。
换句话说,不管代码是否保存,我都需要用shift + enter来运行我想更新的代码,才能在终端看到新的打印结果。
示例
修改前:
a = 1
b = 1
print(a+b)
output : 2
修改后并按ctrl + s:
a = 1
b = 2
print(a+b)
output : 2
1 个回答
0
你在终端里运行的 Python 解释器 是有 状态 的。如果你只是修改了设置变量的代码行,然后重新运行打印的那一行,其实你并没有告诉解释器去更新这些变量的状态。就是这么简单。只有发送给 Python 解释器的代码行才会被执行(用来更新状态或者进行其他操作)。在 VS Code 的 Python 扩展中,并没有复杂的 数据依赖 检测来处理发送到终端的代码行(不过确实有一些 其他程序分析的功能)。