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

简介: transitions是Python中的轻量级、面向对象的状态机实现,具有许多扩展。与Python 2.7+和3.0+兼容。任何好的状态机(毫无疑问,还有很多坏的状态机)的灵魂都是一组状态。我们通过将字符串列表传递给Machine初始化程序来定义有效的模型状态。但是在内部,状态实际上表示为State对象。

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

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

状态

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

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

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

实现

让我们实现以下状态机。

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

71257933_202012062240540175465247.jpg

安装

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

示例

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

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

71257933_202012062245490675588840.jpg

相关文章
|
4月前
|
设计模式 算法 Java
关于编程模式的总结与思考(上)
关于编程模式的总结与思考(上)
72 0
|
4月前
|
存储 NoSQL Java
关于编程模式的总结与思考(中)
关于编程模式的总结与思考(中)
38 1
|
4月前
|
存储 监控 NoSQL
关于编程模式的总结与思考(下)
关于编程模式的总结与思考(下)
49 0
|
4月前
|
存储 设计模式 人工智能
Rust 笔记:有限状态机原理/状态模式 及其 在Rust 编程中的应用
Rust 笔记:有限状态机原理/状态模式 及其 在Rust 编程中的应用
294 0
|
4月前
|
消息中间件 Kubernetes NoSQL
面向对象的三大特性
面向对象的三大特性
|
9月前
|
人工智能 安全 图形学
有限状态机的概念
有限状态机的概念
129 0
|
数据可视化 程序员 C#
C# 面向对象三大特性
C# 面向对象三大特性
95 0
|
Java API
有限状态机问题编程实践(上)
摘要:一般来说,实体的可能状态是有限的, 在满足一定的条件的情况下触发特定动作会发生实体的状态迁移。对于这类问题,我们一般称为FSM(Finite State Machine), 即有限状态机。本文分享一个有限状态机的java实现,以及使用DSL实现的通用化描述。
686 0
有限状态机问题编程实践(上)
|
XML 设计模式 数据可视化
有限状态机问题编程实践(下)
有限状态机问题编程实践(下)
196 0