Donc, voici une expression python:Que signifie l'expression "a = yield from f()"?
a = yield from f()
Qu'est-ce que cela signifie? Où peut-il être utilisé? Quel genre d'objet devrait être f
? Quelle sera la valeur de a
après l'évaluation de l'expression?
Il y a plusieurs questions ici sur stackoverflow à propos de yield
et yield from
de python mais je n'ai pas trouvé de réponse à cela. Je comprends la signification de yield x
, y = yield
et y = yield x
. Même yield from f()
est plus ou moins compréhensible. Mais a = yield from f()
est quelque chose d'inattendu pour moi.
MISE À JOUR:
B. Barbieri fourni la bonne réponse. Encore je dois le formuler un peu différemment.
Sémantique de l'expression a = yield from f()
est très similaire à un appel de fonction: la valeur de a
serait ce que f()
renvoie. Mais si f()
cède quoi que ce soit, la valeur obtenue sera transmise au "niveau supérieur" (vous ne pouvez écrire que a = yield from f()
dans une fonction, et cela vous fera fonctionner un générateur). Si après cela le "niveau supérieur" renvoie une valeur à votre générateur, la valeur sera transmise à f()
et le f()
continuera.
Le yield from
permet à f()
et «niveau supérieur» de communiquer lorsque votre fonction est en cours d'exécution.
Je suppose maintenant que je comprends ce que c'est yield from
et j'espère que cette explication serait utile pour les autres.