博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python语言的有限状态机实现样例
阅读量:5124 次
发布时间:2019-06-13

本文共 1051 字,大约阅读时间需要 3 分钟。

#!/usr/bin/env python3class Connection(object):    def __init__(self):        self.change_state(ClosedConnection)    def change_state(self,new_state):        self.__class__ = new_state    def read(self):        raise NotImplementedError("未实现")    def write(self):        raise NotImplementedError("未实现")    def open(self):        raise NotImplementedError("未实现")    def close(self):        raise NotImplementedError("未实现")class OpenedConnection(Connection):    def read(self):        print("read")    def write(self):        print("write")    def open(self):        raise RuntimeError("连接已经打开")    def close(self):        self.change_state(ClosedConnection)class ClosedConnection(Connection):    def read(self):        raise RuntimeError("连接没有打开")    def write(self):        raise RuntimeError("连接没有打开")    def open(self):        self.change_state(OpenedConnection)    def close(self):        raise RuntimeError("连接已经关闭") if __name__=="__main__":    conn = Connection()    conn.open()    conn.write()

 

转载于:https://www.cnblogs.com/JiangLe/p/9126072.html

你可能感兴趣的文章
HDU 3306 Another kind of Fibonacci
查看>>
Recent comments on MS Groove issue
查看>>
默认构造函数的作用(“A”方法没有采用“0”个参数的重载
查看>>
使用SqlCommandBuilder
查看>>
软件测试作业(一)
查看>>
Vue 之 slot(插槽)
查看>>
Java+Jmeter接口测试
查看>>
@jsonignore的作用
查看>>
RSA加密算法
查看>>
4 文件操作 支持图片 视频 mp3 文本等
查看>>
解决cocos2dx调用removeFromParent后报错问题
查看>>
springBoot 解决前后端分离项目中跨越请求,同源策略
查看>>
Flask 路由映射对于双斜线的处理 //a//b
查看>>
新手算法学习之路----二分法Last-position-of-Target
查看>>
海量小文件存储
查看>>
java虚拟机10.内存模型与线程
查看>>
数据同步到redis中时候需要 需要给关联的表增加id 如果是一对多 则增加list存储id 如果是一个 则增加一个字段 ;目的是便于取值...
查看>>
java 继承
查看>>
Linux 安装 lanmp
查看>>
大数据学习第1天
查看>>