IPython/Spyder不显示变量赋值的输出



我正在使用Spyder编写科学的Python代码,但不知道下面的问题是Spyder问题还是IPython问题。。。

如果我创建了一个变量(我有一个简单的类型,比如doubles、ndarrays等等(,它的值不会在创建后立即显示。

例如,如果我做

s = x1 + x2

我想看看(或者可以选择是否要看(新创建的s的值。有了这些设置,我需要键入

s

分配后查看结果。

仅供参考,我正在寻找的行为是通过是否存在;在Matlab控制台中实现的

需要明确的是:我问这个问题是为了节省键入s(但有时名称更长(和Enter笔划。所以你可以说我懒惰,如果你喜欢的话。

Python不是这样工作的;分配没有值。

IPython/Spyder中有一个隐藏的配置选项可以做到这一点,但仅限于最后一次单元格分配。

In [1]: %config InteractiveShell.ast_node_interactivity='last_expr_or_assign'
In [2]: a = 1+1
Out[2]: 2

您也可以在您的IPython配置文件中设置它,它可以采用的值是['all', 'last', 'last_expr', 'none', 'last_expr_or_assign']

来自ipython --help-all

--InteractiveShell.ast_node_interactivity=<Enum>
'all', 'last', 'last_expr' or 'none', 'last_expr_or_assign' specifying which
nodes should be run interactively (displaying output from expressions).
Choices: any of ['all', 'last', 'last_expr', 'none', 'last_expr_or_assign']
Default: 'last_expr'

这可能不适用于所有情况,如元组分配、拆包和协作,如果遇到这些情况,请随意打开错误报告。

我还要警告您,IPython中的内部工作方式非常棘手,因此可能会产生意想不到的后果。

相关内容

  • 没有找到相关文章