什么时候使用 _ 作为 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 通常与翻译相关联。
当你解包元组时,你应该想出另一个有意义的变量名。
我最近发现我可以使用 _
作为变量。
是否有关于何时将其用作变量名的特定协议?
应该使用 __
吗?
示例来自 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 通常与翻译相关联。
当你解包元组时,你应该想出另一个有意义的变量名。