A quoi sert Ellipsis en Python ?

A quoi sert Ellipsis en Python ?

Cet article appartient à l’ancien propriétaire du site web, nous n’en sommes pas les créateurs et n’en tireront aucune rémunération. L’article est posté à titre d’hommage a Sametmax.com et ce qu’ils ont apportés à la communauté.

A rien.

Nan mais revenez, je déconnais.

Mais, sérieusement, Ellipsis, à la base, ne sert à rien.

Il existe, c’est tout.

En Python 2:

>>> Ellipsis Ellipsis >>> … # pas de forme abrégée File « <stdin> », line 1 … ^ SyntaxError: invalid syntax >>> range(10)[…] # mais ceci n’est pas une syntaxe error Traceback (most recent call last): File « <stdin> », line 1, in <module> TypeError: range indices must be integers or slices, not ellipsis >>> str(Ellipsis) ‘Ellipsis’ >>> Ellipsis() # ce truc ne sert à rien Traceback (most recent call last): File « <stdin> », line 1, in <module> TypeError: ‘ellipsis’ object is not callable >>> Ellipsis + Ellipsis # a rien je vous dis Traceback (most recent call last): File « <stdin> », line 1, in <module> TypeError: unsupported operand type(s) for +: ‘ellipsis’ and ‘ellipsis’ >>> Ellipsis is Ellipsis # c’est un singleton True >>> bool(Ellipsis) # c’est comme None, mais en True True

En Python 3:

>>> … Ellipsis

Comme je vous le disais, ça ne sert à rien.

Du coup on peut en faire ce qu’on veut ! It’s toasted !

Les libs comme NumPy s’en servent pour faire du slicing étendu. Elles ré-implementent __getitem__ et quand elles voient Ellipsis, elles interprètent ça comme un “:” pour toutes les dimensions non spécifiées.

Il y a des gens qui l’utilisent en lieu et place de pass pour dire “j’écrirai ce truc plus tard”:

def fonction_optionelle(): …

Bien entendu, ça ne marche qu’en Python 3.

Découvrir aussi  Pureplayer : quelles sont ces entreprises ?

Personnellement je m’en sers comme valeur quand j’ai besoin d’un truc neutre qui ne soit pas None si None peut être une valeur attendue pour du dev python. Au final quand on veut faire propre, il vaut mieux faire un objet dédié qui s’appelle NotAValue ou autre, mais le quick and dirty a la vie dure.

Attention, les références récursives sont signalées par le shell Python comme ..., mais ça n’a rien à avoir avec la choucroute :

>>> l = [] >>> l.append(l) >>> l [[…]]
5/5 - (30 votes)
John Loerse

A propos de l'auteur

John Loerse est un spécialiste du marketing qui a une passion pour la rédaction. Il a travaillé dans plusieurs entreprises au fil des ans, acquérant une grande expérience dans le domaine du marketing et de la communication. Grâce à sa solide expertise en rédaction et en communication, John a réussi à aider de nombreuses entreprises à atteindre leurs objectifs de marketing et à se développer de manière significative. Finalement, John a décidé de rejoindre Sametmax, une entreprise de mise en relation de freelance et entreprises, pour poursuivre sa carrière dans le marketing et la rédaction. Chez Sametmax, John travaille avec une équipe talentueuse de professionnels pour aider les entreprises à trouver les freelances les plus qualifiés et à réaliser des projets de qualité supérieure.

Laisser un commentaire