在Visual Studio中,“即时窗口”和“交互窗口”又称为“ Python调试交互”之间有什么区别?
似乎,在“即时窗口”中,我可以评估表达式,但不能分配它们。但是,在“交互窗口”中,我可以同时执行这两项操作。
这两个窗口之间到底有什么区别? 当我在“即时窗口”中计算表达式时,幕后发生了什么,为什么我不能为变量赋值?
# I can evaluate expressions, eg
1 + 2
3
np.array([0, 1])
array([0, 1])
# But I cannot assign variables
x = np.array([0, 1])
SyntaxError('invalid syntax', ('<string>', 1, 3, 'x = np.array([0, 1])'))
>>> 1 + 2
3
>>> np.array([0, 1])
array([0, 1])
>>>
>>> x = np.array([0, 1])
>>> x
array([0, 1])
>>>
编辑:我正在使用Visual Studio Community 2019和Python 3.7
答案 0 :(得分:0)
交互式窗口为您提供了完整的python命令行外壳,即与从命令窗口运行python然后在该python窗口中运行相同。基本上,将其用作快速原型制作,表达式求值或您通常从python命令行执行的其他操作的沙箱。
立即窗口用于调试当前项目。例如,在项目中的某个位置设置一个断点,然后当应用程序达到该断点时,您可以使用即时窗口在正在运行的项目的上下文中评估表达式。您在即时窗口中编写的代码将有权访问所有范围内的变量/方法等。
根据所使用的Visual Studio版本,即时窗口的行为有所不同。在VS 2017之前的版本中,您几乎可以在即时窗口中执行任何操作,例如分配在所有情况下都有效,但是从VS 2017开始,底层调试器已更改,现在立即窗口仅限于几乎只对表达式求值。