"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Quels sont les cas d'utilisation et les avantages de l'exploitation de la syntaxe « rendement de » dans Python 3.3 ?

Quels sont les cas d'utilisation et les avantages de l'exploitation de la syntaxe « rendement de » dans Python 3.3 ?

Publié le 2024-11-06
Parcourir:800

What are the Use Cases and Benefits of Leveraging \

En pratique, tirer parti de la syntaxe « rendement de » dans Python 3.3

La syntaxe « rendement de », introduite dans Python 3.3, offre une amélioration significative des capacités des générateurs et des coroutines. Il établit une connexion bidirectionnelle entre un appelant et un sous-générateur, permettant une communication transparente dans les deux sens.

Cas d'utilisation pour « rendement de »

Lecture Données des générateurs :

  • Ce cas d'utilisation imite la fonctionnalité d'une boucle for, mais avec la commodité supplémentaire de propager des exceptions. Par exemple :
def reader():
    for i in range(4):
        yield '<< %s' % i

def reader_wrapper(g):
    yield from g

wrap = reader_wrapper(reader())
for i in wrap:
    print(i)

# Result:
# << 0
# << 1
# << 2
# << 3

Envoi de données à des coroutines :

  • Ce scénario implique la création d'une coroutine qui accepte les données qui lui sont envoyées et les écrit dans un emplacement spécifié, comme un fichier. ou une prise. Par exemple :
def writer():
    while True:
        w = (yield)
        print('>> ', w)

def writer_wrapper(coro):
    yield from coro

w = writer()
wrap = writer_wrapper(w)
wrap.send(None)  # Prime the coroutine
for i in range(4):
    wrap.send(i)

# Expected result:
# >>  0
# >>  1
# >>  2
# >>  3

Comparaison avec les micro-threads

Le rendement de la syntaxe partage certaines similitudes avec les micro-threads dans le sens où il permet de suspendre et de reprendre les coroutines, créant ainsi une alternative légère aux fils traditionnels. Cependant, les coroutines sont plus légères et ont une surcharge de mémoire inférieure à celle des micro-threads. Ils s'exécutent également sur le même thread, évitant ainsi les problèmes associés au changement de contexte dans les environnements multithread.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729681907. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3