可爱的 Python:使用状态机
2007-03-29 12:01:01 来源:WEB开发网核心提示: 本文中讨论的状态机是高级机器,其目的是演示一类问题的编程解决方案,可爱的 Python:使用状态机(2),如果有必要按响应事件行为的类别来讨论编程问题,那么您的解决方案很可能是显式状态机,则状态机也许不是正确的解决方法,(在这种情况下,文本处理状态机最可能调用显式状态机的一个编程问题涉及到
本文中讨论的状态机是高级机器,其目的是演示一类问题的编程解决方案。如果有必要按响应事件行为的类别来讨论编程问题,那么您的解决方案很可能是显式状态机。
文本处理状态机
最可能调用显式状态机的一个编程问题涉及到处理文本文件。处理文本文件通常包括读取信息单元(通常叫做字符或行),然后对刚读取的单元执行适当操作。某些情况下,这个处理是“无状态的”(即每个这样的单元都包含了足够的信息,可以正确确定要执行什么操作)。在其它情况下,即使文本文件不是完全无状态,数据也只有有限的上下文(例如,操作取决于不比行号更多的信息)。但是,在其它常见文本处理问题中,输入文件是极具“状态”的。每一块数据的含义取决于它前面的字符串(也许是它后面的字符串)。报告、大型机数据输入、可读文本、编程源文件和其它种类的文本文件都是有状态的。一个简单例子是可能出现在 Python 源文件中的一行代码:
myObject = SomeClass(this, that, other)
这行表示,如果恰好有以下几行围绕着这一行,则有部分内容不同:
"""How to use SomeClass:
myObject = SomeClass(this, that, other)
"""
我们应知道我们处于“块引用” 状态 以确定这行代码是一部分注释而不是 Python 操作。
何时不使用状态机
当开始为任何有状态的文本文件编写处理器的任务时,问一问自己,您希望在文件中找到什么类型的输入项。每种类型的输入项都是一种状态的候选项。这些类型共有几种。如果数字很大或者不确定,则状态机也许不是正确的解决方法。(在这种情况下,某些数据库解决方案可能更适合。)
[]
- ››使用脚本恢复WinXP系统的用户登录密码
- ››可爱毛绒长靴 《庄园物语》皮草系列低调亮相
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
- ››使用 ADDRESS 与 INDIRECT函数查询信息
赞助商链接