Renvoi de plusieurs valeurs à partir de fonctions en Python
En Python, les fonctions renvoient généralement une seule valeur. Cependant, dans certains scénarios, vous devrez peut-être renvoyer plusieurs valeurs.
Pour renvoyer plusieurs valeurs à partir d'une fonction, vous ne pouvez pas simplement utiliser plusieurs instructions de retour. Au lieu de cela, vous pouvez envisager plusieurs techniques :
Tuples et listes :
Une option consiste à renvoyer un tuple ou une liste contenant les valeurs que vous souhaitez renvoyer. Vous pouvez ensuite décompresser le tuple ou la liste après l'appel de la fonction. Par exemple :
def select_choice(): # ... previous code here return i, card # or [i, card] my_i, my_card = select_choice()
En renvoyant un tuple ou une liste, les valeurs renvoyées sont stockées dans des variables distinctes.
Tuples nommés :
Si vous envisagez de renvoyer plus de deux valeurs, envisagez d'utiliser un tuple nommé. Cela vous permet d'accéder aux valeurs renvoyées par leurs attributs nommés, améliorant ainsi la lisibilité.
from collections import namedtuple ChoiceData = namedtuple('ChoiceData', 'i card other_field') def select_choice(): # ... previous code here return ChoiceData(i, card, other_field) choice_data = select_choice() # access values via attributes print(choice_data.i, choice_data.card)
Dictionnaires :
Le retour d'un dictionnaire est également possible, vous permettant de nommer les valeurs renvoyées et y accéder par leurs clés :
def select_choice(): # ... previous code here return {'i': i, 'card': card, 'other_field': other_field}
Classes d'utilitaires personnalisées :
Pour des scénarios plus complexes, envisagez de créer une classe d'utilitaire ou une classe Pydantic/dataclass instance de modèle pour envelopper vos données renvoyées, offrant validation et encapsulation.
En comprenant ces techniques, vous pouvez renvoyer efficacement plusieurs valeurs à partir de fonctions en Python, améliorant ainsi la flexibilité et la convivialité de votre code.
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!