在 python 解释器中用局部变量屏蔽后如何取消屏蔽变量 _ in python

How to unmask the variable _ in python once it is masked with local variable in python interpreter

我正在启动 python 并在 python 解释器中进行一些计算,计算结果存储在只读内置变量 _ 中。但是,当我声明一个名称为 _ 的变量时,较早的那个被屏蔽了。现在结果不存储在 _ 中。我如何取消屏蔽它。看我给的例子

在否决投票之前,尝试理解问题

>>> 3+5
8
>>> _
8
>>>_ = 3
>>> 4*3
12
>>>4+4
8
>>> _
3

从这次开始,计算结果不再存储在_ 问题是如何将评估结果存储在 _ 之后

谢谢@Matthias,你回答了我的问题del

>>> del _

同一个变量不能用于多个事物。如果你重新声明它,你将失去以前的价值。不要使用 _ 两次,而是使用两个不同的变量名。

在 REPL 中,_ 是一个 shorthand,它将自动存储最后计算的值,除非您明确分配给它。

解决办法是:

  • (Good) 不要一开始就明确分配给它。它违反了使用 _ 来表示您不关心但必须分配的值的惯例,例如:

    value_you_want, _ = function_that_returns_a_2_tuple()
    

    使用一个好的且有意义的变量名


  • (Bad) 您可以使用 del _ 摆脱您显式创建的 _,然后它会自动再次获取上次评估的值。

    >>> 1 + 1
    2
    >>> _
    2
    >>> _ = 1
    >>> _
    1
    >>> 2 + 2
    4
    >>> _
    1
    >>> del _
    >>> 2 + 2
    4
    >>> _
    4