2005-08-09から1日間の記事一覧

《こちらに移動中です》 Python.use(better) 《記事一覧》 ifと別れる50の方法 《7》switchは百害あって一理なし 《著》後藤いるか・森こねこ《監修》小泉ひよ子とタマゴ倶楽部第0版♪1988/03/30 ● 第1版♪2000/05/23 ● 更新♪2008/11/22

クラス:Parser

まず、組み込み関数 filter のヘルプ情報を確認します。 class Parser: def scan(self, e): s = e if e in "+-*/": s = Op(e) # 演算子: operator else: s = Value(e) # 被演算子(引数): operand) return s 逆ポーランド記法で書かれた式(文字列)を調べ…

《関連記事》

Smalltalk: a la carte(23)ifと別れる50の方法《7》switchは百害あって一理なし, 1988. 真樹育未 《Note》タイトルを「一利」ではなく「一理」としてあるのは意図的なものです。その謎解きは本文で ...φ(^.^)

ポリモフィズムを利用すると

前述したように、if と別れる「始め一歩」がポリモフィズムの導入を検討してみることです。それが「末の千里」へと誘います。 expr = "3 4 +" expr = "3 4 + 2 *" parser = Parser() cal = Polish() for e in expr.split(" "): e = parser.scan(e) e.evaluat…

switch 擬で記述すると

expr = "3 4 +" expr = "3 4 + 2 *" parser = Parser() cal = Polish() for e in expr.split(" "): e = parser.scan(e) e.switch({ Value: cal.value, Op : cal.op, }) print cal.evaluate() # -------------------------- class Polish: def __init__(self)…