Mesin keadaan ialah model tingkah laku yang mentakrifkan cara objek bertindak balas kepada peristiwa. Dalam Python, mesin keadaan biasanya dilaksanakan sebagai mesin keadaan terhingga (FSM). FSM ialah model pengiraan matematik yang boleh digunakan untuk mereka bentuk litar logik digital dan program komputer. Ia terdiri daripada satu set keadaan, peralihan antara keadaan, dan operasi yang dilakukan apabila peralihan berlaku.
Mesin keadaan terhingga (FSM) boleh diwakili sebagai graf terarah, dengan keadaan diwakili sebagai nod dan peralihan diwakili sebagai tepi. Tepi dilabelkan dengan peristiwa yang mencetuskan peralihan dan tindakan dikaitkan dengan tepi.
Apabila kita mencipta mesin keadaan, modul mencipta set sifat khas untuk setiap keadaan yang wujud dalam mesin. Kami boleh menggunakan kejadian dan sifat untuk menyemak sama ada harta itu berkenaan dengan keadaan.
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()]
Atas ialah kandungan terperinci Ketahui tentang mesin keadaan dalam Python dan cara melaksanakannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!