首页 > 解决方案 > 简单的__双下划线作为变量名是什么意思?只是__不跟随另一个字符

问题描述

当我ipython在 Windows 10 上运行并执行dir函数时,得到了这个:

Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: dir()
Out[1]:
['In',
 'Out',
 '_',
 '__',
 '___',
 '__builtin__',
 '__builtins__',
 '__doc__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 '_dh',
 '_i',
 '_i1',
 '_ih',
 '_ii',
 '_iii',
 '_oh',
 'exit',
 'get_ipython',
 'quit']

In [2]:

上面有 a和 a _,这些变量作为内置变量是什么意思?_____

而且也没有得到 , 的意思_i_iii好像这个东西只定义在IPython.

_oh显示一个将所有输出存储在 ipython 上的字典。

标签: pythonipythonnaming-conventionsbuilt-in

解决方案


根据 IPython文档,这些_*值缓存了最近输出的值:

以下变量始终存在:

  • _(单下划线):存储以前的输出,如 Python 的默认解释器。
  • __(两个下划线):下一个 上一个。
  • ___(三个下划线):next-next previous。

相反,_i*变量存储最近的输入

_i, _ii, _iii: 存储前一个、下一个前一个和下一个前一个输入。


推荐阅读