说明
-
状态机是一个非常实用的理论。在涉及到复杂的场景,建立状态机模型,能带来极大的方便。比如,网络连接、模型状态、业务逻辑。
-
状态机并不复杂, 重要的是它的思想,能够极大减轻复杂度。使用时关键在于定义事件和动作。
基本概念
State: 状态
Event: 事件. 事件触发状态变换
Action: 动作. event发生前或后执行的动作
transition: 变换. 状态变换
github
https://github.com/pytransitions/transitions
安装
pip install transitions
简单示例
# 连接协议状态机
from transitions.extensions import HierarchicalMachine as Machine
from transitions.extensions.nesting import NestedState
class ConnectionStateMachine:
"""Connection state machine."""
def __init__(self, callbacks=None):
"""
:param callbacks: callbacks for the state machine
"""
self.callbacks = {}
# 定义状态
self.states =