Ellipsis en Python



@eduardo_gpg

Número de visitas 1057

Tiempo de lectura 2 min

16 Enero 2022

Una de las tantas cosas interesantes que podemos encontrar en Python, es sin duda el objeto Ellipsis. Este objeto se representa mediante 3 puntos (...) o directamente por el objeto mismo Ellipsis. 🐍

>>> ...
Ellipsis

>>> Ellipsis
Ellipsis

Sin bien este objeto hizo su primera aparición a través de la librería de Numpy, teniendo como objetivo gestionar matrices de forma más sencilla, Python lo incorpora al lenguaje para ser utilizando en el área de Type Hinting. 😎

Numpy

>>> A = np.random.randint(1, 10, 12)

>>> A.reshape((3, 4))
array([[5, 4, 3, 6],
       [7, 8, 2, 4],
       [5, 9, 2, 5]])

>>> print(A[..., 1])
4

Type Hinting

from typing import Tuple

# Creamos una variable de tipo Tuple que puede almacenar N objetos de tipo int
settings: Tuple[int, ...]

Si quieres conocer más acerca de anotaciones, y sus implicaciones en el lenguaje, te comparto un link a la documentación oficial PEP484. Te invito a que le eches un vistazo. 👩‍🔬

Todo hasta aquí bastante bien, sin embargo me gustaría mencionar que el objeto Ellipsis también podemos utilizarlo al momento de crear un bloque vacío, siendo un posible sustituto para pass.

Como sabemos, y si no ahora ya lo sabes,😆 siempre que deseemos crear un nuevo bloque en Python, y que este no sea implementando, lo que debemos hacer será utilizar la palabra reservada pass. De esta forma el interprete, al momento de ejecutar el código, no lanzará ningún tipo de error.

Ejemplo.

def super_funcion():
    pass

Hasta aquí nada nuevo. Sin embargo podemos reemplazar pass por Ellipsis, y en teoría, no deberíamos tener ningún tipo de problema.

def super_funcion():
    ...

Esto por supuesto aplica para cualquier bloque de código que deseemos. 🤯

if 1 == 1:
    ...
class User:
    ...
@classmethod
def super_method(cls):
    ...

El código, desde mi punto de vista, se ve mucho mejor ¿No lo crees? 😎

Aun que también es importante mencionar que Ellipsis, para este escenario, no tiene nada de especial. De hecho podemos utilizar prácticamente cualquier expresión en Python y debería funcionar. 😬

if 1 == 1:
    0
class User:
    'Clase en construcción, regrese después'
@classmethod
def super_method(cls):
    []

Como pudimos observar Ellipsis es un objeto muy interesante, que si bien su popularidad, o lo más llamativo de él, recae en su uso al momento de crear nuevos bloques, yo te recomiendo siempre sigas un estándar. Si ya te encuentras utilizando pass sigas con ello, si por el contrarío quieres experimentar y probar algo nuevo, bueno, entonces Ellipsis sería una buena idea. 🤖


¿El contenido te resulto de ayuda?

Para poder dejar tu opinión es necesario ser un usuario autenticado. Login

Más Tips y Ejercicios 🐍

Adquiere una subscripción PyWombat por tan solo $3 USD. al mes.

Conoce los beneficios de ser usuario premium:
Niveles desbloqueados: Ten accesos a todos los niveles de ejercicios. 🔓
Nuevo límite: Incrementa tu límite de ejercicios por semana. 🚀
Contenido único: Recibe semanalmente recursos exclusivos de Python (Videos, Artículos y Capitulos del libro PyWombat, comienza como desarrollador Python. 🐍