No soy un hablante nativo. Lo siento por mi ingles. Por favor entiende. El (_) es especial en Python. guión bajo Si bien el (_) se usa solo para funciones y variables de mayúsculas y minúsculas en la mayoría de los idiomas (por supuesto, no para todos), tiene significados especiales en Python. Si usted es un programador de Python, , como la sintaxis puede ser familiar. guión bajo for _ in range(10) __init__(self) Esta publicación explicará cuándo y cómo usar el (_) y lo ayudará a comprenderlo. guión bajo Hay 5 casos para usar el en Python. guión bajo Para almacenar el valor de la última expresión en el intérprete. Por ignorar los valores específicos. (llamado "no me importa") Para 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. Veamos cada caso. Cuando se usa en intérprete El intérprete de python almacena el último valor de expresión en la variable especial llamada '_'. Esta función se usó primero en el intérprete estándar de CPython y también podría usarla en otros intérpretes de Python. >>> 1010>>> _10>>> _ * 330>>> _ * 20600 Por ignorar los valores El también se utiliza para ignorar los valores específicos. Si no necesita los valores específicos o los valores no se usan, simplemente asigne los valores al . guión bajo guión bajo _# Ignorar un valor al desempaquetar_x, _, y = (1, 2, 3) # x = 1, y = 3 x, *_, y = (1, 2, 3, 4, 5) # Ignora los valores múltiples. Se llama "Desempaquetado extendido" y está disponible solo en Python 3.x # x = 1, y = 5 _# Ignorar el index_for _ en el rango (10): hacer_algo() para _, val en list_of_tuple:do_something() # Ignorar un valor de ubicación específica Dar significados especiales al nombre de variables y funciones. El puede ser más utilizado en 'nombrar'. El PEP8, que es la pauta de la convención de Python, presenta los siguientes 4 casos de nomenclatura. guión bajo **_single_leading_underscore**Esta convención se usa para declarar variables , funciones, métodos y clases en un módulo. Cualquier cosa con esta convención se ignora en . Sin embargo, por supuesto, Python no admite por lo que no podemos forzar algo privado y también podemos llamarlo directamente desde otros módulos. Entonces, a veces lo decimos "indicador de uso interno débil". privadas from module import * verdaderamente privado, _internal_name = 'one_nodule' # variable privada_internal_version = '1.0' # variable privada clase _Base: # privada class_hidden_factor = 2 # variable privada def \_\_init\_\_(self, price): self.\_price = price def \_double\_price(self): # private method return self.\_price \* self.\_hidden\_factor def get\_double\_price(self): return self.\_double\_price() **single_trailing_underscore_**Esta convención podría usarse para evitar conflictos con las palabras clave o las funciones integradas de Python. Es posible que no lo use a menudo. Tkinter.Toplevel(master, class_='ClassName') # Evitar conflictos con la palabra clave 'clase' list_ = List.objects.get(1) # Evitar conflictos con el tipo incorporado 'list' **__double_leading_underscore**Esto se trata de sintaxis en lugar de una convención. El alterará los nombres de atributos de una clase para evitar conflictos de nombres de atributos entre clases. (llamado "mangling" que significa que el compilador o el intérprete modifican las variables o los nombres de las funciones con algunas reglas, no se usan como están) La regla de mangling de Python es agregar "_ClassName" al frente de los nombres de los atributos que se declaran con Es decir, si escribe un método llamado "__método" en una clase, el nombre se alterará en forma de "_ClassName__method". doble guión bajo doble guion bajo. clase A:def _single_method(self):aprobado def \_\_double\_method(self): # for mangling pass clase B(A):def __double_method(self): # for manglingpass Debido a que los atributos nombrados con se alterarán como arriba, no podemos acceder a ellos con "ClassName.__method". A veces, algunas personas lo usan como si fueran privados reales usando estas funciones, pero no es para uso privado y no se recomienda para eso. Para obtener más detalles, lea . guiones bajos dobles Python Naming **__doble_guión_subrayado_principal_y_posterior__**Esta convención se usa para variables o métodos especiales (llamados "métodos mágicos") como , . Estos métodos proporcionan características sintácticas especiales o hacen cosas especiales. Por ejemplo, indica la ubicación del archivo Python, se ejecuta cuando se ejecuta . Por supuesto, un usuario puede crear un método especial personalizado, es un caso muy raro, pero a menudo puede modificar algunos métodos especiales incorporados. (por ejemplo, debe inicializar la clase con que se ejecutará al principio cuando se cree una instancia de clase). __init__ __len__ __file__ __eq__ a == b __init__ class A:def __init__(self, a): # usar el método especial '__init__' para inicializarse.a = a def \_\_custom\_\_(self): # custom special method. you might almost do not use it pass Como funciones de internacionalización (i18n)/localización (l10n) Es solo una convención, no tiene ninguna función sintáctica. Es decir, el guión bajo no significa , y es solo una convención que une a la variable de que ha sido de la convención C. La biblioteca incorporada que es para usa esta convención, y Django, que es el marco web de Python compatible con , también presenta y utiliza esta convención. i18n/l10n i18n/l10n guión bajo gettext i18n/l10n i18n/l10n # ver documentos oficiales: import gettext https://docs.python.org/3/library/gettext.html gettext.bindtextdomain('miaplicación','/ruta/a/mi/idioma/directorio')gettext.textdomain('miaplicación')_ = gettext.gettext #... print(_('This is a translatable string.')) Para separar los dígitos del valor literal del número Esta función se agregó en Python 3.6. Se utiliza para separar dígitos de números utilizando para facilitar la lectura. guiones bajos dec_base = 1_000_000bin_base = 0b_1111_0000hex_base = 0x_1234_abcd imprimir (base_dec) # 1000000 imprimir (base_bin) # 240 imprimir (base_hex) # 305441741 Conclusión Hasta ahora hemos cubierto el de Python. Si bien soy un programador de Python, no conocía a algunos de ellos hasta que escribí esta publicación. Especialmente, el es muy nuevo para mí. Al igual que yo, espero que obtenga algunos conocimientos útiles sobre el de esta publicación. guión bajo i18n/l10n guión bajo A continuación, cubriré cosas más interesantes sobre Python. Gracias. _Actualizar_ Se agregó la nueva característica (PEP 515) en Python 3.6 es como los hackers empiezan sus tardes. Somos parte de la familia . Ahora estamos y estamos felices de . Hacker Noon @AMI aceptando presentaciones discutir oportunidades de publicidad y patrocinio Para obtener más información, , o simplemente lea nuestra página de información envíenos un mensaje/me gusta en Facebook envíe un tweet/DM a @HackerNoon. Si disfrutó de esta historia, le recomendamos que lea nuestras historias sobre y de moda. Hasta la próxima, ¡no des por sentadas las realidades del mundo! tecnología más recientes las historias sobre tecnología