una - traceback(most recent call last) python
¿Cómo se usa la sintaxis de corte de puntos suspensivos en Python? (4)
Esto surgió en las características ocultas de Python , pero no puedo ver buena documentación o ejemplos que expliquen cómo funciona la característica.
Este es otro uso de Ellipsis, que no tiene nada que ver con las rebanadas: a menudo lo uso en la comunicación entre hilos con colas, como una marca que señala "Hecho"; está ahí, es un objeto, es un singleton, y su nombre significa "falta de", y no es el usado en exceso (que podría colocarse en una cola como parte del flujo de datos normal). YMMV.
PD: No me molestan los votos a la baja, cuando lo que digo en una respuesta no es útil en relación con la pregunta; entonces trato de mejorar mi respuesta. Pero estoy seguro de que no puedo entender cómo se puede rechazar alguna de las respuestas en esta pregunta, cuando la pregunta es "¿cómo se usa la elipsis en Python? ... Parece que la gente piensa que el voto negativo significa" No estoy de acuerdo "o" No me gusta esto ".
La documentación de Python no es muy clara al respecto, pero hay otro uso de la elipsis. Se utiliza como una representación de estructuras de datos infinitas en el caso de Python. Esta pregunta discute cómo y algunas aplicaciones reales.
La elipsis se usa para cortar estructuras de datos de mayor dimensión.
Está diseñado para significar en este punto, insertar tantos cortes completos (:) para extender el corte multidimensional a todas las dimensiones .
Ejemplo :
>>> from numpy import arange
>>> a = arange(16).reshape(2,2,2,2)
Ahora, tienes una matriz de 4 dimensiones de orden 2x2x2x2. Para seleccionar todos los primeros elementos en la 4ª dimensión, puede usar la notación de puntos suspensivos
>>> a[..., 0].flatten()
array([ 0, 2, 4, 6, 8, 10, 12, 14])
que es equivalente a
>>> a[:,:,:,0].flatten()
array([ 0, 2, 4, 6, 8, 10, 12, 14])
En sus propias implementaciones, puede ignorar el contrato mencionado anteriormente y usarlo para lo que mejor le parezca.
Lo usarías en tu propia clase, ya que ninguna clase interna hace uso de él.
Numpy lo usa, como se indica en la documentation . Algunos ejemplos here .
En tu propia clase, lo usarías así:
>>> class TestEllipsis(object):
... def __getitem__(self, item):
... if item is Ellipsis:
... return "Returning all items"
... else:
... return "return %r items" % item
...
>>> x = TestEllipsis()
>>> print x[2]
return 2 items
>>> print x[...]
Returning all items
Por supuesto, está la documentación de Python y la referencia del lenguaje . Pero esos no son muy útiles.