Introduction à l'utilisation de next et send en python (code)

不言
Libérer: 2018-09-26 15:57:03
original
3194 Les gens l'ont consulté

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
Copier après la connexion

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传过来的
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal