_
es de hecho una elección muy popular para "un nombre que no importa" - es un nombre legal, visualmente discreto, etc. Sin embargo, a veces estas mismas cualidades que pueden obstaculizar. Por ejemplo, el módulo de GNU gettext para I18N y L10N, que es parte de la biblioteca estándar de Python, idiomáticamente utiliza _
de manera muy diferente, con expresiones tales como ...:
_ = gettext.gettext
# ...
print _('This is a translatable string.')
para marcar y traducir toda la cadena literal mensajes en el código (también explotar la escasa presencia visual relativa de _('...')
. Obviamente, cualquier código que utiliza este módulo e idioma no debería también estar utilizando _
a significar algo completamente diferente ("un no me importa el nombre").
Así una segunda alternativa útil puede ser dedicar el nombre unused
para indicar situaciones de "no me importa" en un e manera explícita. Google de python style guide recomienda el uso de ya sea _
o una prefijo de unused_
- el último puede ser un poco verbosa pero tiende a ser muy claro, por ejemplo:
name, unused_surname, salutation = person_data
print "Hello, %s %s!" % (salutation, name)
hace cristalinas que person_data
es una secuencia de tres ítems (probablemente una tupla) y el elemento que está omitiendo (y que no usa) es el apellido (porque desea imprimir un mensaje amistoso como "¡Hola, señor Alex!" o "¡Hola, señorita Piggy!" ;-) . (pylint
y herramientas similares pueden advertirle si tiene variables no utilizadas nombradas de otra manera que _
o unused_...
, y por supuesto también le advierto si alguna vez haga use una variable llamada unused_something
! -).
Probablemente vale la pena señalar aquí en los comentarios que en este caso, realmente usaría 'split' en lugar de' partition'. Es decir, 'var, value = 'VAR = value'.split ('=') '. Bueno, ejemplo sucinto sin embargo. –
@Cody 'split' solo funciona en este caso con un argumento maxsplit. 'partition' parece ser el preferido. Consulte los comentarios a continuación http://stackoverflow.com/a/2745082/11545 para obtener más información de personas con más conocimiento que yo –
El argumento 'maxsplit' especifica ** cuántas divisiones ** se realizan, por lo que se usará' maxsplit = 1' aquí, es decir, como mucho uno se divide en dos piezas como máximo. Esto puede ser confuso porque algunos otros lenguajes de scripting (Perl, PowerShell, etc.) usan un parámetro similar para especificar en su lugar cuántas subcadenas se crean, por lo que el argumento en esos casos sería 2 en lugar de 1. Esto debe ser una fuente de sutilidad errores al portar scripts. – ghostarbeiter