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
|
11月前
|
分布式计算 前端开发 JavaScript
程范式解析:面向对象、函数式与声明式编程
程范式解析:面向对象、函数式与声明式编程
106 0
|
4月前
|
存储 NoSQL Java
关于编程模式的总结与思考(中)
关于编程模式的总结与思考(中)
38 1
|
4月前
|
存储 监控 NoSQL
关于编程模式的总结与思考(下)
关于编程模式的总结与思考(下)
49 0
|
4月前
|
存储 设计模式 人工智能
Rust 笔记:有限状态机原理/状态模式 及其 在Rust 编程中的应用
Rust 笔记:有限状态机原理/状态模式 及其 在Rust 编程中的应用
284 0
|
4月前
|
消息中间件 Kubernetes NoSQL
面向对象的三大特性
面向对象的三大特性
|
9月前
|
人工智能 安全 图形学
有限状态机的概念
有限状态机的概念
129 0
|
数据可视化 程序员 C#
C# 面向对象三大特性
C# 面向对象三大特性
95 0
|
JavaScript Java API
反应式编程探索与总结
1.什么是反应式编程 Reactive Programming 一种以异步处理数据流为中心思想的编程范式,这个范式存在已久,不是新概念,就像面向过程、面向对象编程、函数式编程等范式。 对比一下,Reactive streams指的是一套规范,对于Java开发者来讲,Reactive Streams就是一套API,使我们可以进行Reactive programming。 Reacti
2759 0
|
PHP 开发者
面向对象的三大特性|学习笔记
快速学习面向对象的三大特性