Lorsque vous avez plusieurs sorties d'une fonction et que vous ne voulez pas l'appeler plusieurs fois, je pense que la manière la plus claire de sélectionner les résultats serait:
results = fct()
a,b = [results[i] for i in list_of_index]
Comme exemple de travail minimum, démontrant également que la fonction n'est appelée qu'une seule fois:
def fct(a):
b=a*2
c=a+2
d=a+b
e=b*2
f=a*a
print("fct called")
return[a,b,c,d,e,f]
results=fct(3)
> fct called
x,y = [results[i] for i in [1,4]]
Et les valeurs sont comme prévu:
results
> [3,6,5,9,12,9]
x
> 6
y
> 12
Pour plus de commodité, les index de liste Python peuvent également être utilisés:
x,y = [results[i] for i in [0,-2]]
Renvoie: a = 3 et b = 12
~
comme syntaxe pour ignorer une variable de retour particulière