Python.use(better) #list: step08 -- def index
‖記事一覧‖
Python.use(better)
step08 -- def index
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
事例:モジュールを起動する
■ 全項目を確認する
全ステップの「項目」を確認するには、関数 do を利用します。
$ python -i myList.py >>> do() ... 8: step08 -- def index(self, value)
■ 各項目を実行する
各ステップの「動作」を確認するには、関数 do の実引数を指定します。
>>> do(8) ... >>> # ---------------------------------------- index >>> s = myList("ABC"); s, len(s) (['A', 'B', 'C'], 3) >>> s.index('A') 0 >>> s.index('B') 1 >>> s.index('C') 2 >>> s.index('@') ValueError: myList.index(x): x not in myList >>>
事例:コードの解説
def step08(): """def index(self, value)""" class myList(object): def __iter__(self): ... def count(self, value): #1: return sum(1 for e in self if e==value) def index(self, value): #2: for i,e in enumerate(self): if e==value: return i else: s = self.__class__.__name__ raise ValueError( "ValueError: %s.index(x): x not in %s"%(s,s)) ## ---------------------------------------- tips = "__init__", "append", "__len__", "__contains__", "count", "index", for e in tips: print(">>> #","-"*40,e) eval("ex_%s(SPEC, local)"%e)
《TIPS》メソッド __iter__ を定義すると、self と記述するだけで、それを実現する方法(how)に依存しない、抽象表現(what)が可能になります。
》こちらに移動中です《