Visual Studio“立即窗口”与“交互窗口”

时间:2019-07-11 12:01:35

标签: python visual-studio

在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

1 个答案:

答案 0 :(得分:0)

交互式窗口为您提供了完整的python命令行外壳,即与从命令窗口运行python然后在该python窗口中运行相同。基本上,将其用作快速原型制作,表达式求值或您通常从python命令行执行的其他操作的沙箱。

立即窗口用于调试当前项目。例如,在项目中的某个位置设置一个断点,然后当应用程序达到该断点时,您可以使用即时窗口在正在运行的项目的上下文中评估表达式。您在即时窗口中编写的代码将有权访问所有范围内的变量/方法等。

根据所使用的Visual Studio版本,即时窗口的行为有所不同。在VS 2017之前的版本中,您几乎可以在即时窗口中执行任何操作,例如分配在所有情况下都有效,但是从VS 2017开始,底层调试器已更改,现在立即窗口仅限于几乎只对表达式求值。