Les exceptions sont itérables


Ok, c’est une bizarrerie, mais je tenais à la partager car ça m’a bien niqué : une exception est itérable en Python

>>> for x in Exception('Doh !'):
...     print x
...
Doh !

Pourquoi ? J’en ai aucune idée. Mais j’ai voulu faire un algo récursif sur des structures imbriquées contenant des exceptions. Et ça buggait. Parce que ça parcourait aussi les exceptions.

Le piège vicieux dans lequel peu de gens risquent de tomber vu qu’on programme pas ça tous les jours. Mais tout de même, une étrangetée de Python. Peut être un héritage de l’époque où on pouvait faire un raise sur une string.

6 thoughts on “Les exceptions sont itérables

  • entwanne

    Ce qui n’a plus l’air d’être le cas en python 3.3.4 par exemple

  • Sam Post author

    @entwanne: oui, ce qui renforce la théorie du “restons compatible, on verra ça plus tard”.

    @bob : merci !

  • entwanne

    J’ai fait quelques tests en python2 et ai remarqué que ça itérait sur l’ensemble des arguments fournis au constructeur de l’exception, mais ça n’indique pas plus à quoi ça peut/pouvait bien servir.

  • Syl

    Purée, mais où est-ce que vous allez chercher les thumbnails de vos articles???
    0_°

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.