当我在Windows 10上运行ipython
并执行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]:
上面有一个_
,__
和一个___
,这些变量作为内置变量的意义是什么?
而且也没有得到_i
,_iii
的含义,似乎这个东西只在IPython
中定义。
_oh
显示了一个dict,它存储了ipython上的所有输出。
根据IPython docs,_*
值缓存最近输出的值:
以下变量始终存在:
_
(单个下划线):存储以前的输出,就像Python的默认解释器一样。__
(两个下划线):下一个上一个。___
(三个下划线):下一个下一个上一个。
相反,_i*
变量store recent inputs:
_i
,_ii
,_iii
:存储上一个,下一个上一个和下一个 - 下一个上一个输入。
_用于:1。解释器,2。名称之后,3。在名称之前。忽略价值观:
# Ignore a value
for _ in range(5)
print "Test"
# Ignore a value when unpacking
a, b, _, _ = my_method(var1)