我有一個庫可以做一些「翻譯」,並使用真棒tokenize.generate_tokens()
函數來實現。高效,乾淨的在Python中增長分詞器功能的方法
而且速度非常快,而且我的工作正常。但是在翻譯時,我發現功能不斷增長,我想翻譯新的令牌,並且if
和elif
條件開始全部流行。我還在發生器外部保留了一些跟蹤「最後看到的關鍵字」和類似內容的變量。
的一個很好的例子是實際的Python文檔一個在這裏看到(底部):http://docs.python.org/library/tokenize.html#tokenize.untokenize
每次我加我需要把這種功能的新東西長几個條件句。我不認爲具有這麼多條件的函數是爲鋪平道路鋪路的正確途徑。
此外,我覺得tokenizer會消耗很多不相關的行,而這些行不包含任何我正在翻譯的關鍵字。
所以2個問題:
我怎樣才能避免增加更多的條件語句,這將使這個翻譯功能便於/清潔,以保持增長(沒有性能損失)?
我該如何使它對我不感興趣的所有不相關的行都有效?
我不確定我是否理解你的問題,但其中的一部分似乎是你想避免一個長的if-elif-elif鏈。如果你測試的是相等的常數,你可以將它們存儲在字典中:'switch = {'FOO':somefunc,...}'。然後'切換''FOO'](參數)'。 –