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