IPython魔术分配打印变量

Rob*_*nde 3 python ipython

在IPython中是否有一个参数可以在每次分配变量时将其打印出来?

目前:

In [1]: a = 5

In [2]: a
Out[2]: 5

In [3]: b = a + 1

In [4]: b
Out[4]: 6
Run Code Online (Sandbox Code Playgroud)

在matlab中,除非;在末尾写一个a ,否则将打印该变量,在ipython中,我想使用一种魔术函数将其激活,如下所示:

In [1]: %printassignment

In [2]: a = 5
a = 5

In [3]: b = a + 1
b = 6
Run Code Online (Sandbox Code Playgroud)

我可以写自己的魔术,但是我很确定那是标准人可以制作出超调,标准,功能的东西。该功能对初学者特别有用。

use*_*ica 5

从IPython 6.2开始,它存在,但是将其打开的命令确实很长:

%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'
Run Code Online (Sandbox Code Playgroud)

ipython_config.py如果您希望默认启用它,则可以在中设置它:

c.InteractiveShell.ast_node_interactivity = 'last_expr_or_assign'
Run Code Online (Sandbox Code Playgroud)

仅在分配目标是简单名称时触发;作业类似arr[i] = valobj.attr = 3不会自动打印。