Une machine à états est un modèle comportemental qui définit la façon dont un objet répond aux événements. En Python, les machines à états sont généralement implémentées sous forme de machines à états finis (FSM). FSM est un modèle de calcul mathématique qui peut être utilisé pour concevoir des circuits logiques numériques et des programmes informatiques. Il se compose d'un ensemble d'états, de transitions entre états et d'opérations effectuées lorsque des transitions se produisent.
La machine à états finis (FSM) peut être représentée sous la forme d'un graphe orienté, avec des états représentés par des nœuds et des transitions représentées par des arêtes. Les bords sont étiquetés avec des événements qui déclenchent des transitions et des actions sont associées aux bords.
Lorsque nous créons une machine à états, le module crée un ensemble spécial de propriétés pour chaque état qui existe dans la machine. Nous pouvons utiliser des instances et des propriétés pour vérifier si la propriété est applicable à l'état.
class StateMachine: def __init__(self): self.handlers={} self.startState=None self.endStates=[] def add_state(self,name,handler,end_state=0): name=name.upper() self.handlers[name]=handler if end_state: self.endStates.append(name) def set_start(self,name): self.startState=name.upper() def run(self,cargo): try: handler=self.handlers[self.startState] except: raise InitializationError("must call.set_start()before.run()") if not self.endStates: raise InitializationError("at least one state must be an end_state") while True: (newState,cargo)=handler(cargo) if newState.upper()in self.endStates: print("reached",newState) break else: handler=self.handlers[newState.upper()]
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!