Quels sont les divers cas d'utilisation de « rendement de » dans Python 3.3 et ses avantages ?

DDD
Libérer: 2024-10-23 22:46:29
original
805 Les gens l'ont consulté

What are the Diverse Use Cases of

Comprendre les cas d'utilisation polyvalents du « rendement de » dans Python 3.3

Situations favorisant la syntaxe du « rendement de »

« rendement de » s'avère particulièrement utile dans les scénarios où :

  • Lecture des données des générateurs :

    <code class="python">def reader():
      for i in range(4):
          yield '< ' + str(i)
    
    for i in reader():
      print(i)  # Prints '< 0', '< 1', '< 2', '< 3'
    Copier après la connexion

    "rendement de" offre un moyen pratique de parcourir les données générées par un autre générateur.

  • Envoi de données aux coroutines :

    <code class="python">def writer():
      while True:
          w = (yield)
          print('> ', w)
    
    w = writer()
    for i in range(4):
      w.send(i)  # Prints '> 0', '> 1', '> 2', '> 3'</code>
    Copier après la connexion

    « rendement de » permet à la coroutine « écrivain » de recevoir des données de manière transparente envoyé depuis une source externe.

Pourquoi le « rendement de » est-il comparé aux micro-threads ?

« rendement de » reflète le comportement des micro-threads dans le sens que :

  • Connexion transparente :
    Il établit une connexion bidirectionnelle qui propage de manière transparente les données et les exceptions entre l'appelant et le sous-générateur.
  • Interaction bidirectionnelle :
    Les données peuvent être envoyées à la fois dans et hors du sous-générateur, permettant une communication flexible.

Exemple : combiner la lecture et l'écriture de données

Une application pratique du « rendement de » consiste à combiner la lecture et l'écriture de données en une seule fonction. Prenons l'exemple suivant :

<code class="python">def data_handler():
    for i in reader():
        yield from writer(i)

for i in data_handler():
    print(i)  # Prints the data written by 'writer'</code>
Copier après la connexion

La fonction "data_handler" utilise "yield from" pour transmettre les données de manière séquentielle du générateur "lecteur" à la coroutine "écrivain", créant ainsi un pipeline de traitement de données rationalisé.

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!

source:php
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!