python有限状态机代码实现
时间: 2024-02-13 21:59:09 浏览: 68
Python中可以使用类和方法来实现有限状态机。下面是一个简单的示例代码:
```python
class State:
def __init__(self, name):
self.name = name
def on_event(self, event):
pass
def __repr__(self):
return self.name
class StateMachine:
def __init__(self, initial_state):
self.current_state = initial_state
def on_event(self, event):
self.current_state = self.current_state.on_event(event)
class StateA(State):
def on_event(self, event):
if event == 'event1':
return StateB('State B')
elif event == 'event2':
return StateC('State C')
else:
return self
class StateB(State):
def on_event(self, event):
if event == 'event2':
return StateA('State A')
else:
return self
class StateC(State):
def on_event(self, event):
if event == 'event1':
return StateB('State B')
else:
return self
# 使用示例
if __name__ == '__main__':
state_machine = StateMachine(StateA('State A'))
print(state_machine.current_state) # 输出:State A
state_machine.on_event('event1')
print(state_machine.current_state) # 输出:State B
state_machine.on_event('event2')
print(state_machine.current_state) # 输出:State A
```
在上面的代码中,`State` 类表示状态,每个状态都有一个名称和一个 `on_event` 方法,用于处理事件。`StateMachine` 类表示状态机,它包含一个当前状态,并且可以根据事件切换到不同的状态。
在使用示例中,我们创建了一个状态机,并通过调用 `on_event` 方法来触发状态的切换。输出结果显示了状态的变化过程。
阅读全文