为什么我不能在iPython中为名称`_i`分配值?

piR*_*red 4 python ipython

如果我做:

_j = 1

print(_j)
1
Run Code Online (Sandbox Code Playgroud)

这是预期的

但如果我:

_i = 1

print(_i)
_i = 1
Run Code Online (Sandbox Code Playgroud)

完全不是我的预期.为什么_i特殊和其他名称有这个属性,我不能覆盖它?

小智 8

您正在使用IPython,并且_i具有与IPython相关的特殊含义.在更普遍的Python中,您可以执行此类任务.

在IPython中:

In [1]: _i = 1
In [2]: _i
Out[2]: '_i = 1'
Run Code Online (Sandbox Code Playgroud)

在标准的Python REPL中:

>>> _i = 1
>>> _i
1
Run Code Online (Sandbox Code Playgroud)

更多信息请访问:https://ipython.org/ipython-doc/3/interactive/reference.html#input-caching-system