这些变量是什么?

时间:2016-12-31 22:45:13

标签: python python-2.7 python-3.x syntax

我知道可能这个问题可能会因为它的特殊性而得到一些负面影响而且可能听起来很愚蠢。但我对Python的语法很陌生,我甚至不确定是否有#34;变量"甚至是答案的一部分。所以,请保持冷静:)

我正在Github上查看this Repository

在这里,我在某些行看到了一些奇怪的东西(例如5789等。 作者提供了一些下划线,并在其后添加了一些逗号。虽然我不知道他们的意思

_, _, param1, params, _, _, expr, _ , app = node

据我所知,放置多个变量的语法是:

var1, var2 ,var3 = 1, 2, "3"

但是在这一点上我不知道会发生什么,因为简单的下划线不被认为是变量,特别是当它们被多次使用时(或者它们是什么?)并且git存储库中的语法没有&#39 ; t遵循上面的规则。

我搜索了Python的一些语法备忘单,但这并不匹配任何东西。所以我想得到你们中的一些人的帮助。 谢谢

- 我的经验仅限于C / C ++ / C#/ Java / Javascript [...]

1 个答案:

答案 0 :(得分:6)

_通常用作标识符名称,表示您不打算使用生成的值。在Pythons REPL(Read-Eval Loop)中,它有额外的语义(存储产生的最后一个值),但这不是这里的情况。

您可以在解包时使用多个名称,这是作者正在做的事情。 _的值将不断被覆盖(最终)保持分配的最后一个值。此值(对应于左侧最右侧_的值)再次表示为作者未真正计划使用的内容。

当然,他可以稍微修剪一下:

*_, param1, params, _, _, expr, _ , app = node

如果他愿意,*_这里抓住前两个值(以前写成_, _, param1, ...)并扔掉它们。