我不是一位经验丰富的Python程序员,我看到了以下无法理解的代码。不幸的是,语法非常棘手,难以在互联网上搜索。虽然我确实找到了'_'和'__'的一些解释,但我不确定以下代码是否对'_'有任何特殊含义
if not allowed_positions:
return (0, 0)
_, point = max([(self.point(graph.find_point(p), self), p) for p in allowed_positions])
在上面的代码中,我不明白为什么在点= ...
之前有一个带逗号' - ,'的下划线。
答案 0 :(得分:5)
_
仅用作丢弃变量的占位符。
让我们假设有一个函数返回一个带有两个元素的元组,而我只对元组的第二部分感兴趣,那么通常的做法就是使用_
作为我不需要的变量。
e.g。
>>> def return_tuple():
... return (24,7)
...
>>> _, days = return_tuple()
>>> days
7
答案 1 :(得分:1)
_
是您不需要存储数据的变量的占位符。
您可以将其用于tuple unpacking,并且通常可以使用下划线表示该值不会在以后的脚本中使用。
如果你有这样的话:soldiers = [('Steve', 'Miller'), ('Stacy', 'Markov'), ('Sonya', 'Matthews'), ('Sally', 'Mako')]
而且,你只想得到你会这样做的姓:
for _, last_name in soldiers:
# print the second element
print(last_name)
而不是:
for first_name, last_name in soldiers:
print(last_name
因为您不需要使用first_name
。您将其替换为_
,因此您不会存储不必要的变量