#!/usr/bin/env python3

class 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()

Python语言的有限状态机实现样例的更多相关文章

  1. Python类的继承演示样例

    class Pet: __name = "" def __init__(self, name): self.__name = name def bark(self): return ...

  2. 吴裕雄 python 神经网络——TensorFlow 完整神经网络样例程序

    import tensorflow as tf from numpy.random import RandomState batch_size = 8 w1= tf.Variable(tf.rando ...

  3. boost.python编译及演示样例

    欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46781581 linux编译boost的链接:http://bl ...

  4. Python Socket 编程——聊天室演示样例程序

    上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket ...

  5. Python 100个样例代码【爆肝整理 建议收藏】

    本教程包括 62 个基础样例,12 个核心样例,26 个习惯用法.如果觉得还不错,欢迎转发.留言. 一. Python 基础 62 例 1 十转二 将十进制转换为二进制: >>> b ...

  6. 让你提前认识软件开发(19):C语言中的协议及单元測试演示样例

    第1部分 又一次认识C语言 C语言中的协议及单元測试演示样例 [文章摘要] 在实际的软件开发项目中.常常要实现多个模块之间的通信.这就须要大家约定好相互之间的通信协议,各自依照协议来收发和解析消息. ...

  7. gtk+3.0的环境配置及基于gtk+3.0的python简单样例

    /*********************************************************************  * Author  : Samson  * Date   ...

  8. Python线程的用法 函数式线程_thread和threading 样例

    函数式线程写起来比较简单,但是功能没有threading那么高级,先来个函数式编程样例: #!/usr/bin/python #coding: utf-8 #————————————————————— ...

  9. Swift语言 简明基础 代码演示样例

    开发环境: Mac.Xcode6.0 下面内容均可创建ios common line项目来測试 1.Hello World演示样例 使用xcode创建新的common line项目,查看主文件main ...

随机推荐

  1. 连通性问题--Algorithms IN C读书笔记

    近期在看<Algorithms IN C>这本书.刚開始看,读的是英文版的.感觉作者的叙述有点不太easy理解.就找了一本中文版的来看,发现还是看英文版的比較好.先看了第一章的大部分,后面 ...

  2. Sql server中依据存储过程中的部分信息查找存储过程名称的方法【视图和Function】

    1.查询的语句: select a.id,b.name,a.*,b.* from syscomments a join sysobjects b on a.id=b.id where b.xtype= ...

  3. 一起talk C栗子吧(第八十五回:C语言实例--使用信号进行进程间通信二)

    各位看官们,大家好,上一回中咱们说的是使用信号进行进程间通信的样例,这一回咱们接着上一回的内容,继续说该样例.闲话休提.言归正转. 让我们一起talk C栗子吧. 我们在上一回中举了使用信号进行进程间 ...

  4. V-rep学习笔记:Reflexxes Motion Library 2

    VREP中的simRMLMoveToPosition函数可以将静态物体按照设定的运动规律移动到指定的目标位置/姿态.If your object is dynamically enabled, it ...

  5. 读取csv文件并打印其结果

    In [5]: import pandas as pd In [6]: df=pd.read_csv('https://raw.githubusercontent.com/alstat/Analysi ...

  6. django之创建第7个项目-url配置

    1.配置urls.py from django.conf.urls import patterns, include, url #Uncomment the next two lines to ena ...

  7. AngleSharp 的Dom 选择器

    AngleSharp https://developer.mozilla.org/en-US/docs/Web/API/Element/querySelectorAll Element.querySe ...

  8. timerTask任务定时器

      简单的一个定时器,异步任务 Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void ru ...

  9. C# sqlserver 2008 连接字符串

    sqlserver 2008 的连接字符串和sql2005的几乎是一样的,但是,他们对于其中的一些配置要求不同.我试着用了很多连接字符串,最后找到了问题的原因,特别记录到这里,如果有相同问题的同学,可 ...

  10. Maven Package Plugins And Maven Test

    在使用Maven时候,大家避免不了使用大量插件: 1. maven-compiler-plugin 指定JDK版本和编码方式 ? ?compiler插件能解决2个问题: 第一:指定JDK版本--mav ...