Subrayado _ como nombre de variable en Python [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Cuál es el propósito de la variable de subrayado único "_" en Python? 4 respuestasPeter Norvig tiene un ensayo que describe unaprograma para resolver rompecabezas sudoku, incluso los más difíciles, al combinar operaciones lógicas deterministas y un recorrido inteligente de las posibles soluciones. Lo último se hace recursivamente; Aquí está esa función (fuente):
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]
)
(He agregado algunos espacios, CR y pestañas por el bien de mis ojos; disculpas al Dr. Norvig).
Justo debajo del comentario hay una línea que comienza con "_,s
". Eso parece ser la tupla desempaquetada (len(values[s]),s
) con el valor mínimo des
. Es el Dr. Norvig usando "_
"como nombre de variable solo para indicar que es un resultado" no importa ", o está pasando algo más? ¿Hay momentos en que"_
"¿Se recomienda como nombre de variable? En modo interactivo"_
"contiene la respuesta de la operación anterior; ¿existe una función similar en el código no interactivo?
Gracias por las buenas respuestas. Supongo que la respuesta va a Alex Martelli para "valor agregado"; señala que el idioma "_, vbl_of_interest" es a menudo un efecto secundario del idioma DSU, que a su vez se ha hecho en gran medida innecesario.