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

本文共 1000 字,大约阅读时间需要 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()

 

转载地址:http://bidra.baihongyu.com/

你可能感兴趣的文章
4.Java基础复习--Set
查看>>
七:Mysql的乐观锁与悲观锁机制
查看>>
CSS滤镜及渐变 (filter样式表属性)
查看>>
调用上面的@InitBinder 解决客户端上传时间参数转换的问题
查看>>
net.sf.json.JSONException: There is a cycle in the hierarchy异常,解决方法
查看>>
Android自动化测试方向
查看>>
QT中常用数据之间转换
查看>>
向量的内积,长度,正交性
查看>>
app包中的fragment和v4包中的fragment的使用的区别
查看>>
Http协议与缓存
查看>>
监测超过特定内存阀值进程并结束
查看>>
Linux Centos 查询信息
查看>>
android adb命令
查看>>
python “双”稀疏矩阵转换为最小联通量“单”矩阵
查看>>
揭秘天猫双11背后:20万商家600万张海报,背后只有一个鹿班
查看>>
重置mysq root密码脚本
查看>>
我的友情链接
查看>>
MHA配置参数
查看>>
深入理解Lock
查看>>
vim的块选择
查看>>