python - 当状态值相互重叠时,在 python 中处理状态机中的转换
问题描述
我有大量状态,这些状态对应于不同状态机中的数字
A_STATE_IDLE = 0
A_STATE_ENGAGE = 1
A_STATE_STOP = 2
A_STATE_STOPPED = 3
B_STATE_IDLE = 0
B_STATE_START = 1
B_STATE_RUNNING = 2
B_STATE_SUCCESS = 3
B_STATE_FAIL = 4
B_STATE_STOP = 5
我还列出了状态机的不同转换。
"trigger": press_start
"from": A_STATE_IDLE
"to": A_STATE_START
"trigger": press_start
"from": B_STATE_IDLE
"to": B_STATE_START
我应该如何处理状态的转换,是否可以在不将状态放入例如字典的情况下做到这一点?
最好我想以其中一种方式处理我的过渡。
press_start(A_STATE_IDLE) => A_STATE_START
A_STATE_IDLE.press_start() => A_STATE_START
在尝试实现这一点时,我遇到了重叠状态值的问题,因为 python 无法区分状态,例如
A_STATE_STOPPED == B_STATE_SUCCESS
解决方案
推荐阅读
- reactjs - 在未找到 react-dev-utils 时创建 Reactjs 项目
- cakephp - PhpUnit 无限期运行
- java - 如何使用片段将联系人选择到edittext
- pact - 如何在 pact-jvm 中用异构数组表示响应
- java - 成为房地产所有者的意义是什么? CASCADE 如何与 JPA 中的双方合作?
- java - 为具有 Path 变量的其他 URL 拾取的默认请求映射方法
- apollo - 将 ra-graphql-simple 与 react-admin 一起使用时出错
- android - 响应失败后如何停止http响应
- android - SSL 连接是否适用于 AssyncHttpclient?
- android - Large title for an View