ステート マシンは、オブジェクトがイベントにどのように応答するかを定義する動作モデルです。 Python では、ステート マシンは通常、有限状態マシン (FSM) として実装されます。 FSM は、デジタル論理回路やコンピューター プログラムの設計に使用できる数学的計算モデルです。これは、一連の状態、状態間の遷移、および遷移が発生したときに実行される操作で構成されます。
有限状態マシン (FSM) は、状態がノードとして表され、遷移がエッジとして表される有向グラフとして表すことができます。エッジには遷移をトリガーするイベントのラベルが付けられ、アクションがエッジに関連付けられます。
ステート マシンを作成すると、モジュールはマシン内に存在する各状態の特別なプロパティ セットを作成します。インスタンスとプロパティを使用して、プロパティが状態に適用できるかどうかを確認できます。
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()]
以上がPython のステート マシンとその実装方法を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。