transitions-一种轻量级的,面向对象的有限状态机实现

transitions是Python中的轻量级、面向对象的状态机实现,具有许多扩展。与Python 2.7+和3.0+兼容。

任何好的状态机(毫无疑问,还有很多坏的状态机)的灵魂都是一组状态。我们通过将字符串列表传递给Machine初始化程序来定义有效的模型状态。但是在内部,状态实际上表示为State对象。

状态

您可以通过多种方式初始化和修改状态。具体来说,您可以:

  • 将字符串传递给Machine初始化器,并给出状态的名称
  • 直接初始化每个新State对象
  • 通过带有初始化参数的字典

将状态添加到计算机后,将对其进行一次初始化,并且状态将一直持续到将其从计算机中删除为止。换句话说:如果您更改状态对象的属性,则下次您进入该状态时,将不会重置此更改。

实现

让我们实现以下状态机。

  • 对象的开头为“开发中”,然后可以变为“实时”。
  • 从“活动”状态可以将其标记为“维护中”。
  • 从所有状态可以将该对象标记为“已删除”。
  • 可以将“已删除”对象恢复为“正在维护”状态。
  • 每当发生过渡时,日期时间都会记录在日期字段中。

transitions-一种轻量级的,面向对象的有限状态机实现

安装

transitions-一种轻量级的,面向对象的有限状态机实现的源代码文件

示例

一个好的例子值得使用100页的API文档,一百万条指令或一千个单词。

无论如何,github上面有最为详细的示例。当然,您还可以在jupyter上面亲自运行这些例子。

transitions-一种轻量级的,面向对象的有限状态机实现

上一篇:一表详解运算符优先级 | 手把手教你入门Python之二十四


下一篇:点赞收藏分享三连!开发老司机必备的10个超实用网站