用它的魔法行为掩盖内置变量?

时间:2015-07-27 20:31:37

标签: python python-3.x

我无法关注此statement in python tutorials

  

该变量应被用户视为只读。不要为它显式赋值 - 你可以创建一个具有相同名称的独立局部变量,用它的魔术行为掩盖内置变量。

2 个答案:

答案 0 :(得分:3)

在互动提示中,_有"魔法"行为 - 它被设置为最后评估的任何表达式的值:

>>> 3 + 3
6
>>> _
6

但是,如果你自己为一个名为_的变量分配了一些东西,那么你只能看到""该变量,魔术变量被隐藏("蒙面"):

>>> _ = 3
>>> 3 + 3
6
>>> _
3

这是因为您的局部变量_与具有魔术行为的变量无关,它恰好具有相同的名称。

所以不要这样做,而不是在互动提示中。

答案 1 :(得分:2)

这正是它所说的意思;你不应该为$('#foo').css('z-index', ''); 变量分配任何内容,因为这会隐藏真正的魔术变量:

<div id="foo" style="display: block; ..."></div>

魔术_变量存储了最后一个被回显的表达式的结果,但是通过分配给>>> 1 + 1 2 >>> _ 2 >>> _ = 'foo' >>> 2 + 2 4 >>> _ 'foo' ,你不再能够“看到”这个神奇的变量。查找_显示我现在赋予它的任何值。

幸运的是,您还可以删除阴影_名称:

_