En este artículo, vamos a ver el guión bajo (_) en Python .
Los siguientes son diferentes lugares donde se usa «_» en Python:
- Guión bajo único :
- Guión bajo único en el intérprete
- Guión bajo único después de un nombre
- Guión bajo único antes de un nombre
- Guión bajo único en literales numéricos
- Guión bajo doble:
- Doble guión bajo antes de un nombre
- Guión bajo doble antes y después de un nombre
Guión bajo único
Ejemplo 1: Guión bajo único en el intérprete:
_ devuelve el valor de la última expresión ejecutada en Python Prompt/Intérprete
Ejemplo 2: guión bajo único para ignorar valores
Varias veces no queremos valores devueltos en ese momento para asignar esos valores a subrayado. Se utiliza como una variable descartable.
Python3
# Ignore a value of specific location/index for _ in range(10) print ("Test") # Ignore a value when unpacking a,b,_,_ = my_method(var1)
Ejemplo 3: Guión bajo único después de un nombre
Python tiene las suyas por defecto como palabras clave que no podemos usar como nombre de variable. Para evitar tal conflicto entre la palabra clave de python y la variable, usamos un guión bajo después del nombre
Python3
class MyClass(): def __init__(self): print("OWK") def my_definition(var1=1, class_=MyClass): print(var1) print(class_) my_definition()
Producción:
1 <class '__main__.MyClass'>
Ejemplo 4: Guión bajo único antes de un nombre
El guión bajo inicial antes del nombre de la variable / función / método indica al programador que es solo para uso interno, que puede modificarse cuando la clase lo desee. Aquí el prefijo del nombre por un guión bajo se trata como no público. Si especifica desde Importar * todos los nombres que comienzan con _ no se importarán. Python no especifica verdaderamente privado, por lo que este puede llamarse directamente desde otros módulos si se especifica en __all__, también lo llamamos privado débil
Python3
class Prefix: def __init__(self): self.public = 10 self._private = 12 test = Prefix() print(test.public) print(test._private)
10 12
Ejemplo 5: guión bajo único en literales numéricos
La sintaxis de Python se utiliza de tal manera que los guiones bajos se pueden usar como separadores visuales por motivos de agrupación de dígitos para mejorar la legibilidad. Esta es una característica típica de la mayoría de los lenguajes actuales y puede ayudar en la legibilidad de los literales largos, o literales cuyo valor debe separarse claramente en porciones.
Python3
# grouping decimal for easy readability of long literals amount = 10_000_000.0 # grouping hexadecimal for easy readability of long literals addr = 0xCAFE_F00D # grouping bits for easy readability of long literals flags = 0b_0011_1111_0100_1110
Doble guión bajo antes de un nombre
El guión bajo doble inicial le dice al intérprete de Python que reescriba el nombre para evitar conflictos en una subclase . El intérprete cambia el nombre de la variable con extensión de clase y esa característica conocida como Mangle.
Python3
class Myclass(): def __init__(self): self.__variable = 10
Llamando desde el intérprete
El intérprete de Python modifica el nombre de la variable con ___. Entonces, varias veces se usa como miembro privado porque otra clase no puede acceder a esa variable directamente. El objetivo principal de __ es usar la variable /método solo en clase. Si desea usarlo fuera de la clase, puede hacerlo público.
Python3
class Myclass(): def __init__(self): self.__variable = 10 def func(self) print(self.__variable)
Llamando desde el intérprete
Guión bajo doble antes y después de un nombre
El nombre comienza con __ y termina con el mismo considerando métodos especiales en Python. Python proporciona estos métodos para usarlos como la sobrecarga del operador según el usuario. Python proporciona esta convención para diferenciar entre la función definida por el usuario con la función del módulo
Python3
class Myclass(): def __add__(self,a,b): print (a*b)
Llamando desde el intérprete
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA