Maison  >  Article  >  développement back-end  >  Comment puis-je spécifier plusieurs types de retour dans les astuces de type Python ?

Comment puis-je spécifier plusieurs types de retour dans les astuces de type Python ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-25 15:44:11522parcourir

How Can I Specify Multiple Return Types in Python Type Hints?

Spécification de plusieurs types de retour avec des indices de type

En Python, les fonctions peuvent parfois renvoyer différents types de données en fonction des paramètres d'entrée ou de la logique interne. Pour indiquer clairement les types de retour attendus, des indices de type peuvent être utilisés.

Utilisation du type Union

Depuis Python 3.10, le "|" L’opérateur peut être utilisé pour créer un type d’union. Cela permet de spécifier plusieurs types de retour, permettant la syntaxe suivante :

def foo(id) -> list | bool:
    ...

Cela indique que la fonction foo peut renvoyer soit une liste, soit un booléen.

Utilisation de la saisie. Union

Pour les versions Python antérieures à 3.10, la construction typing.Union peut être utilisé :

from typing import Union

def foo(id) -> Union[list, bool]:
    ...

Limitations des indications de type

Il est important de noter que les indications de type en Python ne sont pas appliquées au moment de l'exécution. Cela signifie que les annotations de type servent de guide lors du développement du code mais ne garantissent pas les types de retour réels.

Démonstration :

>>> def foo(a: str) -> list:
...     return "Works"
...

>>> foo(1)
'Works'

Dans cet exemple, un entier est passé en argument à la fonction foo qui est annotée pour renvoyer une liste. Malgré la violation de l'annotation de type, la fonction renvoie une chaîne et s'exécute avec succès.

Cependant, l'attribut __annotations__ de la fonction reflétera toujours le type de retour attendu tel que spécifié dans l'annotation :

>>> foo.__annotations__
{'return': <class 'list'>, 'a': <class 'str'>}

Pour Pour plus d'informations sur les astuces de type, reportez-vous à PEP 483 et Que sont les astuces de type dans Python 3.5 ??. Notez que cette fonctionnalité est disponible à partir de Python 3.5.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn