transitions是Python中的轻量级、面向对象的状态机实现,具有许多扩展。与Python 2.7+和3.0+兼容。
任何好的状态机(毫无疑问,还有很多坏的状态机)的灵魂都是一组状态。我们通过将字符串列表传递给Machine初始化程序来定义有效的模型状态。但是在内部,状态实际上表示为State对象。
状态
您可以通过多种方式初始化和修改状态。具体来说,您可以:
- 将字符串传递给Machine初始化器,并给出状态的名称
- 直接初始化每个新State对象
- 通过带有初始化参数的字典
将状态添加到计算机后,将对其进行一次初始化,并且状态将一直持续到将其从计算机中删除为止。换句话说:如果您更改状态对象的属性,则下次您进入该状态时,将不会重置此更改。
实现
让我们实现以下状态机。
- 对象的开头为“开发中”,然后可以变为“实时”。
- 从“活动”状态可以将其标记为“维护中”。
- 从所有状态可以将该对象标记为“已删除”。
- 可以将“已删除”对象恢复为“正在维护”状态。
- 每当发生过渡时,日期时间都会记录在日期字段中。
安装
transitions-一种轻量级的,面向对象的有限状态机实现的源代码文件
示例
一个好的例子值得使用100页的API文档,一百万条指令或一千个单词。
无论如何,github上面有最为详细的示例。当然,您还可以在jupyter上面亲自运行这些例子。