什么时候使用 _ 作为 Python 中的变量?

When to use _ as a variable in Python?

我最近发现我可以使用 _ 作为变量。

是否有关于何时将其用作变量名的特定协议? 应该使用 __ 吗?

示例来自 deeplearning.net with the Theano 库,在定义 theano.scan() 操作时有使用 _ 的趋势...

values, _ = theano.scan(power_of_2,
                        outputs_info = T.constant(1.),
                        non_sequences = max_value,
                        n_steps = 1024)

_ 通常用作解包组件的解包表达式中的变量名,这些组件不需要并且将被忽略。

_ 通常在您要丢弃其值(即不使用其值)或局部变量时使用。但这当然是约定俗成的。

例如,您有一个 returns 元组的函数,但您只对元组的第一个元素感兴趣,所以

var, _ = func(args)

将是您通常使用它的方式。
另一个例子包括,例如,重复某事 x 次但没有真正使用 range 中的值,所以你可以这样做:

for _ in range(10):
    #blablabla

但请记住,这些只是程序员制定的约定,并不遵循任何规则,尽管不使用 _ 作为您 打算使用。

_ 和 dummy 由 pylint 特别处理 - 它们是您可以分配内容而不会收到 "variable set but not used" 警告的变量。

虽然它曾被用来表示一个未使用的变量,但现在建议反对使用_,因为它通常有自己的特殊用途,具体取决于所使用的库,例如 Django 通常与翻译相关联。

当你解包元组时,你应该想出另一个有意义的变量名。