¿Cuál es el significado de _después foren este código?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
¿Cuál es el significado de _después foren este código?
if tbh.bag:
n = 0
for _ in tbh.bag.atom_set():
n += 1
len(tbh.bag.atom_set())(si el valor devuelto tiene un__len__método) osum(1 for _ in tbh.bag.atom_set())pylintotra opción para nombres de variable ficticios hay un prefijodummy_para el nombre de la variable. Al usar este prefijo conpylint,pylintno se emite una advertencia. También puede configurar el patrón variable ficticio parapylintacomodar cosas como__.Respuestas:
_tiene 4 usos convencionales principales en Python:raise forms.ValidationError(_("Please enter a correct username"))label, has_label, _ = text.partition(':').defolambda), cuando se fije la firma (por ejemplo, por una devolución de llamada o la API de la clase padre), pero esta implementación función particular no necesita todos los parámetros, como en el código como:callback = lambda _: True(Durante mucho tiempo, esta respuesta solo enumeró los primeros tres casos de uso, pero el cuarto caso surgió con suficiente frecuencia, como se señala aquí , para que valga la pena enumerarlo explícitamente)
Los últimos casos de uso de "variable desechable o nombre de parámetro" pueden entrar en conflicto con el caso de uso de búsqueda de traducción, por lo que es necesario evitar usarlo
_como variable desechable en cualquier bloque de código que también lo use para la traducción i18n (muchas personas prefieren un doble guión bajo) ,__como su variable desechable exactamente por este motivo).fuente
_es el nombre utilizado para la función que realiza búsquedas de traducción de cadenas de internacionalización y localización. Estoy bastante seguro de que es lagettextbiblioteca C la que estableció esa convención.__(un doble guión bajo) como mi variable de uso general para evitar conflictos con cualquiera de los dos primeros casos de uso._usar como nombre de variable desde que comencé a usar Python profesionalmente en 2002.a, __, c = iterablele dice al lector de inmediato que estamos desempacando una tupla de 3, pero solo usando los valores primero y último. Si en lugar de escribira, b, c = iterable, el lector (o un código de linter automatizado) pueden esperar razonablemente que todosa,bycpara ser utilizado más adelante (y si no lo son, puede ser un signo de un fallo en algún lugar).Es solo un nombre de variable, y es convencional en Python para usar
_con variables desechables. Simplemente indica que la variable de bucle no se usa realmente.fuente
_, deja de mantener permanentemente el valor de salida de la expresión anterior. Esto parece terriblemente inconsistente, y los estándares de Python Lang deben abordar esto. Deben definir_como un nombre desechable y evitar que se use como un identificador real.El subrayado
_se considera como variable " No me importa " o " Desechable " en PythonEl intérprete de python almacena el último valor de expresión en la variable especial llamada
_.El guión bajo
_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 para subrayar.Ignorar un valor al desempacar
Ignorar el índice
fuente
_("Hello world!").dismódulo, descubrí que no había diferencia en el código de bytes . Sin embargo, los beneficios de la legibilidad humana son obvios.Hay 5 casos para usar el guión bajo en Python.
Para almacenar el valor de la última expresión en el intérprete.
Para ignorar los valores específicos. (llamado "no me importa")
Dar significados y funciones especiales al nombre de vartiables o funciones.
Para usar como funciones de 'Internacionalización (i18n)' o 'Localización (l10n)'.
Para separar los dígitos del valor literal del número.
Aquí hay un buen artículo con ejemplos de mingrammer .
fuente
En lo que respecta a los lenguajes Python,
_no tiene un significado especial. Es un identificador válido como_foo,foo_o_f_o_o_.Cualquier significado especial de
_es puramente por convención. Varios casos son comunes:Un nombre ficticio cuando una variable no está destinada a ser utilizada, pero la sintaxis / semántica requiere un nombre.
Muchos REPL / shells almacenan el resultado de la última expresión de nivel superior en
builtins._.Debido a la forma en que se buscan los nombres, a menos que estén sombreados por una
_definición global o local a la que se_hace referenciabuiltins._.Nota: Algunos shells como
ipythonno se asignan abuiltins._casos especiales_.En el contexto de internacionalización y localización,
_se utiliza como un alias para la función de traducción primaria.fuente