pytomatonEen handiger en beknopte manier om staatsmachines in Python uit te drukken | |
Download nu |
pytomaton Rangschikking & Samenvatting
Advertentie
- Vergunning:
- MIT/X Consortium Lic...
- Prijs:
- FREE
- Naam uitgever:
- Will Haldean Brown
- Uitgever website:
- https://github.com/haldean/
pytomaton Tags
pytomaton Beschrijving
Vaak is een staatsmachine een handige manier om een stateful-protocol te implementeren, maar ze hebben vaak veel rommelige boilerplaat om te beheren hoe u van de ene toestand naar de volgende overgang gaat of wat er precies gebeurt wanneer u een staat invoert. Pytomaton is gemaakt om deze boilerplatecode te verkleinen.just zoals in een theoretische automaat, een `pytomaton.statemachine` heeft een lijst met staten, een startstatus. Op elk moment is een staatsmachine in één enkele staat. De programmeur kan `statemachine.transitie (new_state_name) inroepen" om over te gaan naar een nieuwe staat; Wanneer dit gebeurt, controleert de staatsmachine om te zien of er acties zijn die door deze overgang worden geactiveerd. Momenteel kunnen acties worden geactiveerd door een specifieke status in te voeren (`on_enter`), of door te overgaan van een specifieke toestand naar de andere (` on_transition`). Methoden zijn ingericht als wordt ingericht door overgangen, zoals getoond in het onderstaande voorbeeld. Uitbeelding van Pytomaton import Statemachine, on_transition, on_enter class-connectionmachine (statemachine): staten = Start_State = 'Waiting_FOR_Connection 'Def on_connect (Self): self.transition (' Waiting_for_ready ') @on_transition (' Waiting_for_connection ',' Waiting_for_ready ') Def Send_ready_Promp (Self): Self.Broadcast (' Ben je klaar? ') Def Ontvangst! self.all_ready (): self.transition ('all_ready') @on_enter ('all_ready') def send_all_ready (self): self.broadcast ('Iedereen is klaar!') In dit voorbeeld definiëren we een 'connectionmachine' drie staten. Het begint in de staat `Waits_for_Connection`. Wanneer een gebruiker, in overgangen naar de `WAATS_FOR_REATED" staat, die een oproep naar `Send_ready_Promp" triggert. Wanneer een gebruiker bevestigt dat ze klaar zijn, gaan we over naar de `on_ready" -staat, wat een oproep activeert naar `Send_all_ready`.Product's startpagina
pytomaton Gerelateerde software