Maison > Article > développement back-end > Introduction à l'utilisation de next et send en python (code)
Le contenu de cet article concerne l'utilisation de next et send en python (code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Si send ne contient pas de paramètres, alors send(None) et next() ont le même effet, par exemple :
def a(): print('aaa') p = yield '123' #print(p) print('bbb') r = a() print(next(r)) #print(r.send(None)) #使用next(r) 和 r.send(None)输出的结果都是 #注意的是,这里的p变量的值都是None aaa
Si le paramètre d'envoi n'est pas Aucun, le rendement xx est considéré comme une représentation, et la valeur du paramètre d'envoi est affectée à p l'opération suivante est la même que la suivante, telle que :
def a(): print('aaa') p1 = yield '123' print('bbb') if (p1 == 'hello'): print('p1是send传过来的') p2= yield '234' print(p2) r = a() next(r) r.send('hello') #结果为 aaa bbb p1是send传过来的
Parlons de l'ordre d'exécution. Tout d'abord, a() est un générateur ; la première exécution est soit next(r) soit r.send(None. ). Vous ne pouvez pas utiliser r.send( 'xxxxx'); cela signalera une erreur. Lors de l'exécution de next(r) pour la première fois, il imprime d'abord aaa,
puis saute lorsqu'il rencontre rendement. Ensuite, lorsque r.send('hello') est exécuté, p1 se voit attribuer la valeur. bonjour, puis continuez avec la dernière exécution, imprimez bbb à l'étape suivante, puis imprimez "p1 est transmis par envoi". Il sautera lorsqu'il rencontrera à nouveau le deuxième rendement, donc le résultat n'imprime que trois lignes, et le p2 suivant n'est pas exécuté.
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!