Charmer le Python : « state machines » basées sur les générateurs

Posté par  . Modéré par Benoît Sibaud.
Étiquettes : aucune
0
30
sept.
2002
Python
Les générateurs simples présentés dans Python 2.2 peuvent être utilisés pour simplifier des machines à état/automates (« state machines ») et simuler des co-routines. Ces dernières forment un mécanisme de flux exotiques que peu de langages largement utilisés, y compris Python non-Stackless, permettent. Cependant, les nouveaux générateurs de Python vous guident presque jusqu'aux co-routines et les quelques pas restant peuvent s'improviser. Dans cet article, l'auteur explique tous les concepts appropriés grâce à des exemples de code illustrés.

Aller plus loin

  • # Gni?

    Posté par  . Évalué à 4.

    Le problème est que les lecteurs potentiels de la news, pas beaucoup la comprennent. Dont moi.

    Une explication serait pas mal.

    bon, -1
    • [^] # Re: Gni?

      Posté par  (site web personnel) . Évalué à 1.

      Fais gaffe il va bien se trouver quelqu'un pour te répondre que pour comprendre la news t'as qua lire le liens donné avec...

      Alors à celui qui s'appretait à nous dire ca, expliques nous, parce que moi non plus j'ai rien compris ;-)

      sinon ya des co-routines dans vb6, ah non des con-routines...
    • [^] # Re: Gni?

      Posté par  . Évalué à 4.

      Pas tout capté mais je suppose que ça ressemble aux grammaires, déjà à cause du vocabulaire : generator, ressemble au verbe engendrer en français.

      Ensuite, ça parle de streams et d'automates.

      le lien avec les co-routines est donné ici : http://www.python.org/peps/pep-0255.html(...) le mec stoppe sa routine pour retourner le résultat puis une fois que le résultat est traité, reviens calculer un nouveau résultat etc.
      Il existe donc un équivalent à ça avec des co-routines.

      c'est spé, ça mérite un examen plus complet.

      Et je capte pas en quoi filer une closure au "producteur" (selon le vocabulaire du "PEP") n'est pas suffisant. Mais c'est bizzare ; je capte rien au framework utilisé.
      • [^] # Re: Gni?

        Posté par  (site web personnel) . Évalué à 0.

        à mon avis, c'est surtout une histoire d'implémentation. Ici l'auteur bricole avec des "generateurs" pythons : ca permet de faire des streams efficacement. On peut faire la même chose avec des fermetures (des thunks) mais en python ça va ramer.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.