Подчеркивать _ как имя переменной в Python [дубликат]
На этот вопрос уже есть ответ здесь:
Каково назначение единственной подчеркивания «_» в Python? 4 ответаУ Питера Норвига есть эссе, описывающеепрограмма для решения головоломок судокуДаже самые сложные, сочетая детерминированные логические операции и умный обход возможных решений. Последнее делается рекурсивно; вот эта функция (источник):
def search(values):
"Using depth-first search and propagation, try all possible values."
if values is False:
return False ## Failed earlier
if all( len( values[s]) == 1 for s in squares):
return values ## Solved!
## Chose the unfilled square s with the fewest possibilities
_,s = min( (len( values[s]), s)
for s in squares
if len(values[s]) > 1
)
return some( search( assign( values.copy(), s, d))
for d in values[s]
)
(Ради своих глаз я добавил несколько пробелов, CR и табуляции; извинения перед доктором Norvig.)
Прямо под комментарием есть строка, начинающаяся с "_,s
". Кажется, это распакованный кортеж (len(values[s]),s
) с минимальным значениемs
, Доктор Норвиг использует?_
"как имя переменной, просто чтобы указать, что это результат" все равно ", или что-то еще происходит? Есть ли случаи, когда"_
"рекомендуется в качестве имени переменной? В интерактивном режиме"_
"содержит ответ предыдущей операции; есть ли подобная функция в неинтерактивном коде?
Спасибо за хорошие ответы. Я думаю, что Ответ идет к Алексу Мартелли для «добавленной стоимости»; он указывает, что идиома «_, vbl_of_interest» часто является побочным эффектом идиомы DSU, которая сама по себе была сделана в значительной степени ненужной.