OOP への道:if と別れる50の方法《07》The Java™ Tutorials の事例から
Python.use(better) # OOP への道 《Python3.1, Jython2.5.0, IronPython2.6.x》
The Java™ Tutorials の事例から
#2: テンプレートによる抽象表現
《著》真樹育未・後藤いるか・小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第0版♪1988/10/12 ● 第1版♪1993/05/23 ● 第2版♪2003/05/25
■ 概要
if/switch への未練を断ち切るのは容易ではありません。
伝統的なC言語風の for 文や悪名高い switch 文、配列の呪縛から解かれ、オブジェクト指向プログラミング〔OOP〕の醍醐味を堪能するための準備を行います。
The if-then-else Statement
》作業中です《http://d.hatena.ne.jp/kotsubu-chan/20090717
class TemplateDemo(object): def __init__(self, keys, values, default, cond): self.keys = keys self.values = values self.default = default self.cond = cond def index(self, s): for n, e in enumerate(self.keys): if self.cond(s, e): return self.values[n] else: return self.default def example(): ## ---------------------------------------- print("-"*20, "HexDemo") demo = TemplateDemo( "0123456789ABCDEF", range(16), -1, lambda s, e: s == e, ) for e in "0123456789ABCDEF@": print("Hex = %2d"%demo.index(e), ":", e) ## ---------------------------------------- print("-"*20, "IfElseDemo") demo = TemplateDemo( [90, 80, 70, 60], "ABCD", "F", lambda s, e: s >= e, ) for e in range(0, 101, 10): print("Grade = %s"%demo.index(e), ":", e)
>>> example() #-------------------- HexDemo Hex = 0 : 0 Hex = 1 : 1 Hex = 2 : 2 Hex = 3 : 3 Hex = 4 : 4 Hex = 5 : 5 Hex = 6 : 6 Hex = 7 : 7 Hex = 8 : 8 Hex = 9 : 9 Hex = 10 : A Hex = 11 : B Hex = 12 : C Hex = 13 : D Hex = 14 : E Hex = 15 : F Hex = -1 : @ #-------------------- IfElseDemo Grade = F : 0 Grade = F : 10 Grade = F : 20 Grade = F : 30 Grade = F : 40 Grade = F : 50 Grade = D : 60 Grade = C : 70 Grade = B : 80 Grade = A : 90 Grade = A : 100
Tips
》作業中です《
Last updated♪2009/07/26