¿Cuál es el propósito de la variable de guion bajo simple "" en Python?


¿Cuál es el significado de _ después de for en este código?

if tbh.bag:
   n = 0
   for _ in tbh.bag.atom_set():
      n += 1
Author: gsamaras, 2011-05-05

4 answers

_ tiene 3 usos convencionales principales en Python:

  1. Para mantener el resultado de la última expresión ejecutada (/sentencia) en un sesión de intérprete. Este precedente fue establecido por el estándar CPython intérprete, y otros intérpretes han seguido su ejemplo
  2. Para la búsqueda de traducción en i18n (ver el gettext documentación por ejemplo), como en código como: raise forms.ValidationError(_("Please enter a correct username"))
  3. Como nombre de variable de uso general "desechable" para indicar esa parte de un resultado de la función es ser deliberadamente ignorado, como en código como: label, has_label, _ = text.partition(':')

Los dos últimos propósitos pueden entrar en conflicto, por lo que es necesario evitar usar _ como una variable desechable en cualquier bloque de código que también la use para la traducción de i18n (muchas personas prefieren un doble guion bajo, __, como su variable desechable exactamente por esta razón).

 613
Author: ncoghlan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-23 07:32:42

Es solo un nombre de variable, y es convencional en python usar _ para variables desechables. Solo indica que la variable de bucle no se utiliza realmente.

 162
Author: gsteff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-05 05:47:50

El subrayado _ se considera como" No me importa "o" Desechable " variable en Python

  • El intérprete python almacena el último valor de expresión en la variable especial llamada _.

    >>> 10 
    10
    
    >>> _ 
    10
    
    >>> _ * 3 
    30
    
  • El subrayado _ también se usa para ignorar los valores específicos. Si no necesita los valores específicos o los valores no se utilizan, simplemente asigne los valores a subrayado.

    Ignorar un valor cuando desembalaje

    x, _, y = (1, 2, 3)
    
    >>> x
    1
    
    >>> y 
    3
    

    Ignorar el índice

    for _ in range(10):     
        do_something()
    
 32
Author: Ashish Sahu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-12 14:37:42

Hay 5 casos para usar el subrayado en Python.

  1. Para almacenar el valor de la última expresión en interpreter.

  2. Para ignorar los valores específicos. (el llamado "No me importa")

  3. Para dar significados y funciones especiales al nombre de vartiables o funciones.

  4. Para usar como funciones' Internationalization(i18n) 'o' Localization(l10n)'.

  5. Para separar los dígitos del número literal valor.

Aquí es un buen artículo con ejemplos mingrammer.

 11
Author: Reck,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-13 08:49:43