【问题标题】:Visual Studio "Immediate Window" vs "Interactive Window"Visual Studio“即时窗口”与“交互式窗口”
【发布时间】:2019-07-11 12:01:35
【问题描述】:

在 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

【问题讨论】:

    标签: python visual-studio


    【解决方案1】:

    交互式窗口为您提供了完整的 python 命令行 shell,即它与从命令窗口运行 python 然后在该 python 窗口中工作相同。基本上将其用作沙箱,用于快速原型设计、表达式评估或您通常在 python 命令行中执行的任何其他操作。

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

    根据您使用的 Visual Studio 版本,即时窗口的行为会有所不同。在 VS 2017 之前的版本中,您几乎可以在即时窗口中执行任何操作,例如分配在所有情况下都有效,但从 VS 2017 开始,底层调试器发生了变化,现在即时窗口仅限于几乎所有表达式评估。

    【讨论】:

    • 谢谢伊恩,我知道与交互式窗口不同,即时窗口将在范围内包含变量的上下文,但是当我在即时窗口中评估表达式时,它仍然调用与交互式窗口相同的 Python 解释器,不是吗?那么为什么它不能分配变量呢? (我正在使用 VS 2019 以防万一)
    猜你喜欢
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多