Python.use(better) #list: step10 -- def __setitem__(self, key, value)
‖記事一覧‖ Python.use(better)《Python3.1》
def __setitem__(self, key, value)
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
事例:モジュールを起動する
■ 全項目を確認する
全ステップの「項目」を確認するには、関数 do を利用します。
$ python myList.py >>> do() ... 10: step10 -- def __setitem__(self, key, value)
■ 各項目を実行する
各ステップの「動作」を確認するには、関数 do の実引数を指定します。
>>> do(10) ... >>> # ---------------------------------------- __setitem__ >>> s = myList("ABC"); s, len(s) (['A', 'B', 'C'], 3) >>> s[0] = 'X'; s, len(s) (['X', 'B', 'C'], 3) >>> s[1] = 'Y'; s, len(s) (['X', 'Y', 'C'], 3) >>> s[2] = 'Z'; s, len(s) (['X', 'Y', 'Z'], 3) >>>
事例:コードの解説
def step10(): """def __setitem__(self, key, value)""" class myList(object): ... def __setitem__(self, key, value): #1: node, n = self.head.next, 0 while node: if n==key: node.item = value; break node, n = node.next, n+1 ## ---------------------------------------- global dirs; local = locals() dirs += "__setitem__", for e in dirs: print(">>> #","-"*40,e) eval("ex_%s(SPEC, local)"%e)
■ #1: 要素の設定
メソッド __setitem__ は、演算子 [] に呼応して、各要素の値を設定します。
def __setitem__(self, key, value): #1: node, n = self.head.next, 0 while node: if n==key: node.item = value; break node, n = node.next, n+1
連結リスト self の各ノード node を順にたどりながら、
- 変数 n(カウンター)が引数 key と同値なら、
- 引数 key の値を設定します。
- 引数 key と同値でないなら、
- 次のノード node.next を再設定するともに、
- 変数 n(カウンター)の値を1つ増やします。
》こちらに移動中です《
↑TOP