2011-04-26 10 views
11

Tengo una pregunta específica de Python. ¿Qué significa un único guión bajo _ como parámetro? Tengo una función llamando al hexdump(_). El _ nunca fue definido, así que supongo que tiene un valor especial, no pude encontrar una referencia que me diga lo que significa en la red. Estaría feliz si pudieras decirme.subrayado de Python como un parámetro de función

Con recuerdos

Respuesta

15

En conchas Python, el guión bajo (_) significa que el resultado de la última expresión evaluada en el shell:

>>> 2+3 
5 
>>> _ 
5 

También hay _2, _3 y así sucesivamente en IPython pero no en el intérprete original de Python. No tiene ningún significado especial en el código fuente de Python hasta donde yo sé, así que supongo que está definido en algún lugar de tu código si se ejecuta sin errores.

3

No tiene un valor especial en el código que escribe. Se almacena el resultado de la última expresión se evalúa en el intérprete interactivo y se utiliza por conveniencia

+0

qué intérprete hace esto? – sureshvv

+0

El intérprete que obtienes cuando escribes 'python' en el prompt y presionas enter. Intente escribir '3 + 4' enter en el prompt' >>> 'y presione enter. Luego intente imprimir el valor de '_'. Obtendrás '7' (resultado de la última expresión evaluada). –

-4

Sí que sí tiene un significado en su código, como muestra este ejemplo:

>>> def f(x): 
    return (x, x + 2) 

>>> (i, j) = f(5) 
>>> i 
5 
>>> j 
7 
>>> (k, _) = f(7) 
>>> k 
7 

Como se puede ver, esto le permite no dar un nombre a un valor devuelto. Pero su caso es diferente ya que el '_' se usa como un parámetro (el shell estándar de python lo espera como una variable: NameError: name '_' is not defined).

+5

Eso no está "en su código", eso está "en REPL". –

+0

pero le dio un nombre al valor devuelto, su nombre es '_' – Andrey

+1

@Ignacio: tiene razón, eso es lo que quise decir. @ Andrey: de hecho, me di cuenta de que era un nombre de variable como cualquier otro, realmente pensé que esto era una sintaxis de azúcar. – Emmanuel

Cuestiones relacionadas