J'ai récemment remarqué quelque chose d'intéressant en regardant Spécification de la grammaire Python 3.3 :
funcdef: 'def' NAME parameters ['->' test] ':' suite
Le bloc optionnel "flèche" était absent de Python 2 et je n'ai pu trouver aucune information concernant sa signification dans Python 3. Il s'avère que c'est un Python correct et qu'il est accepté par l'interpréteur :
def f(x) -> 123:
return x
J'ai pensé que ça pouvait être une sorte de syntaxe de précondition, mais.. :
- Je ne peux pas tester
x
ici, car il n'est pas encore défini, - Peu importe ce que je mets après la flèche (par ex.
2 < 1
), cela n'affecte pas le comportement de la fonction.
Quelqu'un qui a l'habitude de ce style de syntaxe pourrait-il l'expliquer ?