Logotipo de Zephyrnet

¿Cuál es la función del guión bajo (_) en Python?

Fecha:

Introducción

¿Cuál es la función del guión bajo (_) en Python?

Python, un lenguaje de programación versátil y dinámico, se basa en símbolos para transmitir significado y funcionalidad. Esta exploración profundiza en el significado de uno de esos símbolos: el guión bajo (_). En Python, el guión bajo (_) es un símbolo versátil. Se utiliza comúnmente como variable desechable, como marcador de posición en bucles y para convenciones de nomenclatura internas. En el intérprete interactivo, un guión bajo representa el resultado de la última expresión evaluada. Además, en la internacionalización, sirve como alias para la función gettext() para marcar cadenas para traducción. La adaptabilidad del guión bajo lo convierte en una herramienta útil en varios escenarios de codificación.

Tabla de contenidos.

El guión bajo único

El guión bajo único cumple funciones multifacéticas dentro de la sintaxis de Python. Actúa como marcador de posición, enfatizando la importancia de la variable u operación que representa. A continuación se muestran algunos casos de uso comunes:

Subrayado como variable

1. Variable temporal o sin importancia

Usar como marcador de posición para una variable temporal o sin importancia. Por ejemplo:

     _, result = some_function_returning_tuple()

2. Variable “No me importa” o “Desechable”

Úselo cuando no le importe el valor de una variable en particular. Por ejemplo, puedes usarlo al desempaquetar secuencias para ignorar elementos que no necesitas.

     _, important_value = get_data()

3. Variables privadas

A veces se utiliza como convención para indicar que una variable está destinada únicamente a uso interno (similar a una variable "privada").

        _internal_variable = 42

Subrayado en intérprete

En el intérprete de Python, un guión bajo único (`_`) tiene una función especial como marcador de posición para el resultado de la última expresión cuando se usa en una sesión interactiva. Se utiliza principalmente en el contexto del shell interactivo de Python (REPL – Read-Eval-Print Loop).

Aquí hay un par de casos de uso comunes:

1. Almacenar el resultado de la última expresión.

>>> x = 5

   >>> x + 3

   8

   >>> _

   8

   En este ejemplo, el guión bajo `_` se usa para hacer referencia al resultado de la última expresión (`x + 3`), que es 8.

2. Ignorar un valor

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

   >>> y

   2

Aquí, los guiones bajos se utilizan como convención para indicar que los valores desempaquetados no son interesantes y solo se mantiene el valor medio (`y`).

Subrayado en bucle   

Se puede utilizar un guión bajo como forma convencional de indicar variables no utilizadas intencionalmente cuando no se utiliza la variable de bucle dentro de un bucle.

     for _ in range(5):
         # do something without using the loop variable

Subrayado para la internacionalización y la traducción

A veces se utiliza como nombre de una variable cuando la variable es sólo un marcador de posición y su valor no se utilizará. Esto es común en funciones de internacionalización y traducción, donde el traductor no necesita el valor de la variable.

     _('This is a translatable string')

Subrayado para ignorar valores

Descarta valores no deseados durante el descomprimido, lo que mejora la claridad del código.

Recuerde que usar un guión bajo único para los nombres de variables es principalmente una convención y Python no lo tratará de manera diferente a otros nombres de variables. Es una forma para que los programadores se comuniquen con otros (y con ellos mismos) sobre el uso previsto de una variable.

El doble guión bajo

El doble guión bajo, o dunder, juega un papel fundamental en las convenciones de nomenclatura y los mecanismos de encapsulación de Python.

Nombre Mangling

En una definición de clase, cuando antepone un nombre con guiones bajos dobles (por ejemplo, __variable), Python utiliza la manipulación de nombres para hacer que el nombre sea más exclusivo, evitando conflictos de nombres involuntarios en las subclases. Los programadores suelen emplear esta técnica para pseudoprivatizar atributos o métodos dentro de una clase, a pesar de que Python carece de verdaderos miembros privados.

class MyClass:

         def __init__(self):

             self.__private_variable = 42

     # Accessing the private variable outside the class

     obj = MyClass()

     print(obj.__private_variable)  # This would raise an AttributeError

Métodos especiales (métodos Dunder)

En Python, los programadores suelen utilizar guiones bajos dobles como convención para métodos especiales, conocidos como métodos "dunder" (abreviatura de guiones bajos dobles). Estos métodos tienen significados específicos dentro del lenguaje y sirven para propósitos como sobrecargar operadores o definir comportamientos particulares para objetos.

class MyClass:

         def __str__(self):

             return "This is a custom string representation"

     obj = MyClass()

     print(obj)  # This will call the __str__ method

Constantes mágicas

Algunos nombres de doble guión se utilizan como constantes mágicas, como `__file__` y `__name__`, que proporcionan información sobre el módulo o script actual.

print(__file__)  # Name of the current script

     print(__name__)  # Name of the current module

Métodos especiales ignorados

A veces, un doble guión bajo puede indicar que un método está destinado a uso interno y no debe considerarse parte de la API pública. Esto es más una convención y no tiene un efecto específico a nivel del idioma.

Estos son algunos casos de uso comunes del doble guión bajo en Python. Es importante tener en cuenta que el uso de guiones bajos dobles para la manipulación de nombres y métodos especiales es una convención, y Python no impone un control estricto de privacidad o acceso. Se espera que los programadores sigan convenciones sobre legibilidad y mantenibilidad del código.

Conclusión

Comprender la función y el uso de los guiones bajos en Python es crucial para cualquier programador. Mejora la legibilidad del código y ayuda a escribir código limpio y eficiente. Aunque es un símbolo simple, el guión bajo afecta significativamente la programación de Python.

punto_img

Información más reciente

punto_img