我正在使用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中的内部工作方式非常棘手,因此可能会产生意想不到的后果。