264 votes

Python essayer... sauf virgule vs ' comme ' sauf en

Quelle est la différence entre «, » et « as » en à l’exception des déclarations, par exemple :

et :

La seconde syntaxe est légal dans 2.6 ? Il fonctionne dans CPython 2.6 sous Windows, mais l’interprète 2,5 dans cygwin se plaint qu’il n’est pas valide.

Si ils sont tous deux valides dans 2.6 qui dois-je utiliser ?

306voto

Amber Points 159296

Le document définitif est PEP-3110 : attraper les Exceptions

Résumé :

  • En Python 3.x, à l’aide de `` est nécessaire.
  • En Python 2.6 +, utilisez la `` syntaxe, car il est beaucoup moins ambiguë et avant compatible avec Python 3.x.
  • Dans Python 2.5 et les versions antérieures, utilisez la version de virgule, car `` n’est pas pris en charge.

41voto

inspectorG4dget Points 25092

Oui, c'est légal. Je suis sous Python 2.6

try:
    [] + 3
except Exception as x:
    print "woo hoo"

>>> 
woo hoo

Mise à jour: Il y a une autre raison d'utiliser l' as de la syntaxe. À l'aide de , rend les choses beaucoup plus ambigu, comme d'autres l'ont fait; et voici ce qui fait la différence. Que de la version 2.6 de Python, il n'y a multicatch qui permet d' intercepter plusieurs exceptions dans un except bloc. Dans une telle situation, il est plus expressif et pythonic-à-dire

except (exception1, exception2) as e

plutôt que de dire

except (exception1, exception2), e

qui fonctionne encore

17voto

Alex Gaynor Points 6217

la syntaxe « que » est le préféré aller de l’avant, toutefois si votre code doit fonctionner avec Python anciennes versions (2.6 est la première à supporter une nouvelle) alors vous aurez besoin d’utiliser la syntaxe de la virgule.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X