#!/usr/bin/env Python3classConnection (object):def __init__(self): self.change_state (closedconnection)defchange_state (self,new_state): Self.__class__=new_statedefRead (self):RaiseNotimplementederror ("not implemented") defWrite (self):RaiseNotimplementederror ("not implemented") defOpen (self):RaiseNotimplementederror ("not implemented") defClose (self):RaiseNotimplementederror ("not implemented")classopenedconnection (Connection):defRead (self):Print("Read") defWrite (self):Print("Write") defOpen (self):RaiseRuntimeError ("Connection already open") defClose (self): self.change_state (closedconnection)classclosedconnection (Connection):defRead (self):RaiseRuntimeError ("Connection not open") defWrite (self):RaiseRuntimeError ("Connection not open") defOpen (self): self.change_state (openedconnection)defClose (self):RaiseRuntimeError ("The connection is closed") if __name__=="__main__": Conn=Connection () Conn.Open () Conn.write ( )
Example of a finite state machine implementation for Python language