【问题标题】:IPython / Spyder do not show output of the assignment of a variableIPython / Spyder 不显示变量赋值的输出
【发布时间】:2021-06-20 01:02:45
【问题描述】:

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

如果我创建一个变量(我想到的是简单类型,如双精度数、ndarrays 等),它的值不会在创建后立即显示。

例如,如果我这样做了

s = x1 + x2

我想查看(或者可以选择是否查看)新创建的s 的值。 使用这些设置,我需要输入

s

刚分配完就可以看到结果了。

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

要明确一点:我问这个问题是为了节省输入 s(但有时名称更长)和 Enter 笔划。所以你可以叫我懒惰。

【问题讨论】:

    标签: python matlab ide ipython spyder


    【解决方案1】:

    这不是 Python 的工作方式;赋值没有值。

    在 IPython/Spyder 中有一个隐藏的配置选项可以做到这一点,但只有在 last 分配单元时。

    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'
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-17
      • 2020-03-13
      • 1970-01-01
      • 2017-05-10
      相关资源
      最近更新 更多