python重点项目实践.docVIP

  • 4
  • 0
  • 约2.3万字
  • 约 30页
  • 2020-11-07 发布于江苏
  • 举报
python项目练习一:即时标识 60837°C 这是《python基础教程》后面实践,照着写写,首先是来熟悉python代码方法,其次是练习使用python中基础和非基础语法,做到熟能生巧。 这个项目一开始比较简单,不过重构以后就有些复杂了,不过更灵活了。 根据书上所说,重构以后程序,分为四个模块:处理程序模块,过滤器模块,规则(其实应该是处理规则),语法分析器。 先来说处理程序模块,这个模块作用有两个,一个是提供那些固定html标识输出(每一个标识全部有start和end),另一个是对这个标识输出开始和结束提供了一个友好访问接口。来看下程序handlers.py: class Handler: def callback(self, prefix, name, *args): method = getattr(self,prefix+name,None) if callable(method): return method(*args) def start(self, name): self.callback(start_, name) def end(self, name): self.callback(end_, name) def sub(self, name): def substitution(match): result = self.callback(sub_, name, match) if result is None: match.group(0) return result return substitution class HTMLRenderer(Handler): def start_document(self): print htmlheadtitle.../title/headbody def end_document(self): print /body/html def start_paragraph(self): print p def end_paragraph(self): print /p def start_heading(self): print h2 def end_heading(self): print /h2 def start_list(self): print ul def end_list(self): print /ul def start_listitem(self): print li def end_listitem(self): print /li def start_title(self): print h1 def end_title(self): print /h1 def sub_emphasis(self, match): return em%s/em % match.group(1) def sub_url(self, match): return a href=%s%s/a % (match.group(1),match.group(1)) def sub_mail(self, match): return a href=mailto:%s%s/a % (match.group(1),match.group(1)) def feed(self, data): print data 这个程序堪称是整个“项目”基石所在:提供了标签输出,和字符串替换。了解起来也比较简单。 再来看第二个模块“过滤器”,这个模块更为简单,其实就是一个正则表示式字符串。相关代码以下: self.addFilter(r\*(.+?)\*, emphasis) self.addFilter(r(http://[\.a-z0-9A-Z/]+), url) self.addFilter(r([\.a-zA-Z]+@[\.a-zA-Z]+[a-zA-Z]+),mail) 这就是三个过滤器了,分别是:强调牌过滤器(用×号标出),url牌过滤器,email牌过滤器

文档评论(0)

1亿VIP精品文档

相关文档