Maison > Article > développement back-end > Comment spécifier plusieurs types de retour avec des indications de type en Python ?
Spécification de plusieurs types de retour avec des indices de type en Python
Les indices de type de Python vous permettent de spécifier les types de données attendus pour les paramètres de fonction et les valeurs de retour . Lorsqu'une fonction peut renvoyer plusieurs types, la question se pose de savoir comment la représenter avec précision dans les indices de type.
Type Union (Python 3.10 et versions ultérieures)
Dans Python 3.10 et versions ultérieures, le | L’opérateur peut être utilisé pour créer un type d’union. Cela permet une notation concise et claire pour plusieurs types de retour. Par exemple :
def foo(client_id: str) -> list | bool:
Cela indique que la fonction foo peut renvoyer soit une liste, soit un booléen.
Typing.Union (versions Python antérieures)
Pour les versions antérieures de Python, la classe typing.Union doit être utilisé :
from typing import Union def foo(client_id: str) -> Union[list, bool]:
Limitations
Il est important de noter que les indications de type en Python ne sont pas appliquées au moment de l'exécution. Par conséquent, il sert d’aide au développement plutôt que de mécanisme strict de vérification de type. Les fonctions peuvent toujours renvoyer des types inattendus, comme illustré ci-dessous :
>>> def foo(a: str) -> list: ... return "Works" ... >>> foo(1) 'Works'
Dans ce cas, bien que la fonction soit annotée pour renvoyer une liste, elle renvoie une chaîne. Cependant, l'attribut annotations reflétera le type de retour prévu :
>>> foo.__annotations__ {'return': <class 'list'>, 'a': <class 'str'>}
Reportez-vous à la PEP 483 pour plus de détails sur les astuces de type en Python. Pour plus d'informations, pensez à lire « Que sont les indices de type dans Python 3.5 ? » Grâce à ces techniques, vous pouvez spécifier avec précision plusieurs types de retour dans votre code Python, améliorant ainsi sa lisibilité et sa maintenabilité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!