可爱的 Python:使用状态机
2007-03-29 12:01:01 来源:WEB开发网核心提示: 或者,如果愿意,可爱的 Python:使用状态机(4),可以使用单个 current_section 变量来确定位置:处理 .INI 文件的计算 Python 代码for linein open('hypothetical.ini').readlines():if line
或者,如果愿意,可以使用单个 current_section 变量来确定位置:
处理 .INI 文件的计算 Python 代码
for
line
in
open(
'hypothetical.ini').readlines():
if
line[0] ==
'[':
current_section = line(1:-2)
elif
line[0] ==
';':
pass
# ignore comments
else
:
apply_value(current_section, line)
何时使用状态机
现在,我们已经决定了如果文本文件“太简单”就不使用状态机,让我们再研究 需要使用状态机的情况。本专栏中 最近一篇文章 讨论了实用程序 Txt2Html,它将“智能 ASCII”(包括本文)转换成 HTML。让我们扼要重述。
“智能 ASCII”是一种文本格式,它使用一些间隔约定来区分文本块的类型,如头、常规文本、引语和代码样本。虽然读者或作者能容易地通过查看分析这些文本块类型之间的转移,但却没有简单的方法可以让计算机将“智能 ASCII”文件分割成组成它的文本块。不像 .ini 文件示例,文本块类型可以任何顺序出现。在任何情况下都没有单一定界符来分隔块(空行 通常 分隔文本块,但代码样本中的空行却不一定结束代码样本,并且文本块不需要用空行来分隔)。由于需要以不同方式重新格式化每个文本块以生成正确的 HTML 输出,状态机似乎就是自然的解决方案。
更多精彩
赞助商链接