简单__双下划线作为变量名称的含义是什么?只是__不跟随另一个字符

问题描述 投票:4回答:2

当我在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上的所有输出。

python ipython naming-conventions built-in
2个回答
3
投票

根据IPython docs_*值缓存最近输出的值:

以下变量始终存在:

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

相反,_i*变量store recent inputs

_i_ii_iii:存储上一个,下一个上一个和下一个 - 下一个上一个输入。


1
投票

_用于:1。解释器,2。名称之后,3。在名称之前。忽略价值观:

# Ignore a value 
for _ in range(5) 
    print "Test"

# Ignore a value when unpacking 
a, b, _, _ = my_method(var1)
© www.soinside.com 2019 - 2024. All rights reserved.