A lo largo de los años he notado la variable 'comodín' en varias partes de Python que he encontrado. Supuse que funcionaba como Haskell: permitiéndole poner una variable donde se requería uno en los parámetros formales, pero sin vincularlo.Comodines en Python?
Lo he usado, por ejemplo, en el lado izquierdo de una asignación de tupla-desembalaje cuando no necesito una de las variables.
Por ejemplo:
_, extension = os.path.splitext(filename)
Así que cuando escribí algo similar a esto hoy:
(lambda (x,_,_): x)((1,2,3))
POR EJEMPLO Traté de unir el guión bajo dos veces, recibí un error de sintaxis. Me sorprendió ver que _ es de hecho una variable real:
(lambda (x,_,z): _)((1,2,3))
> 2
Parece que _
es sólo un nombre de variable como cualquier otro.
¿Existe una variable de comodín de buena fe que pueda usar como me gustaría (es decir, que pueda usar más de una en una asignación de desempaquetado de tuplas), según el primer ejemplo?
En python 3 esto también funciona en el desembalaje, por ejemplo: '(a, * rest, b) = [1,2,3,4]' – rplnt
Además, los bucles no deberían ser un problema ya que no tienen su propio espacio de nombres. – rplnt
Además, puedes usar '*' y '**' con lambdas. – kindall