国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python的即時標記項目練習筆記

2020-02-23 05:47:43
字體:
來源:轉載
供稿:網友

這是《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 '<html><head><title>...</title></head><body>'
    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>'

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 神农架林区| 敦化市| 延寿县| 孟连| 栾川县| 温州市| 财经| 敦煌市| 诏安县| 图们市| 孝昌县| 罗城| 平泉县| 安乡县| 镇巴县| 蚌埠市| 拜泉县| 临汾市| 东港市| 克什克腾旗| 武城县| 泰来县| 安多县| 通许县| 墨江| 松滋市| 松阳县| 富平县| 晋中市| 安丘市| 余江县| 静海县| 博兴县| 安福县| 敦化市| 恭城| 安仁县| 柳林县| 平南县| 卢龙县| 饶河县|