Lorsque j'écris une annotation pour une fonction qui renvoie un paramètre, je n'ai aucun problème.
def func() -> str:
return "ok"
Cependant, lorsque j'écris une annotation avec deux ou plusieurs paramètres, mon PyCharm me donne SyntaxError: invalid syntax
.
def func() -> str, str:
return "ok - 1", "ok - 2"
Je pense que les paramètres peuvent être combinés avec un Tuple
, mais je ne pense pas que ce soit la meilleure façon de le faire.
Ma question est: comment puis-je annoter correctement une fonction avec deux ou plusieurs paramètres de retour?
Veuillez inclure un lien PEP, le cas échéant, dans votre réponse. J'ai cherché la réponse à PEP 484 et PEP 3107 et je n'ai pas pu la trouver.
Utilisez typing.Tuple
:
from typing import Tuple
def func() -> Tuple[str, str]:
return 'a', 'b'
Ceci est approprié car, conceptuellement, vous renvoyez en fait un seul Tuple
contenant ces valeurs. Remarque:
print(type(func()))
Production:
<class 'Tuple'>
À l'exception du Tuple
(()
) Vide, les parenthèses ne sont pas nécessaires pour définir un Tuple
, ce qui signifie que 'a', 'b'
est créé en tant que Tuple
, plutôt que d'être des valeurs séparées rassemblées en une par l'instruction return
.