Python.use(better) #list: step01 -- def __repr__(self)
‖記事一覧‖ Python.use(better)《Python3.1》
def __repr__(self)
《著》小粒ちゃん+∞《監修》小泉ひよ子とタマゴ倶楽部
第0版♪2001/03/02 ● 第1版♪2003/05/25 ● 第2版♪2004/06/01 ● 第3版♪2009/02/28
事例:モジュールを起動する
■ 全項目を確認する
全ステップの「項目」を確認するには、関数 do を利用します。
$ python -i myList.py >>> do() ... 1: step01 -- def __repr__(self)
■ 各項目を実行する
各ステップの「動作」を確認するには、関数 do の実引数を指定します。
>>> do(1) >>> s = myList(); s [] >>>
- 生成したインスタンス(オブジェクト)は、要素を含まない空リスト s です。
結果として、
- 括弧 [] の中には、何も出力されません。
事例:コードの解説
def step01(): """def __repr__(self)""" class myList(object): def __init__(self): self.head = self.tail = Node() def __repr__(self): #1: s = [] node = self.head.next while node: s.append(repr(node.item)) node = node.next return "[%s]"%", ".join(s) ## ---------------------------------------- def ex___init__(spec, local): X = 's = %s(); s'%spec print_(X, local) ## ---------------------------------------- local = locals() ex___init__(SPEC, local) ## ---------------------------------------- def print_(source, local): #2: print(">>>",source) eval(compile(source,"","single"),globals(),local)
■ #1: オブジェクトの文字列表現
def __repr__(self): #1: s = [] node = self.head.next while node: s.append(repr(node.item)) node = node.next return "[%s]"%", ".join(s)
メソッド __repr__ は、組み込み関数 repr に呼応して、オブジェクトの文字列表現を与えます。
- 先頭のノード self.head から順に、各要素 node.item をリスト s に追加 append します。
- 括弧 [] の中に、各要素をカンマ「, 」と空白文字で区切って列挙します。
《NOTE》対話モードでは、repr() を適用したのと同じ出力が得られます。
>>> "ABC" 'ABC' >>> print(str("ABC")) ABC >>> print(repr("ABC")) 'ABC'《発展課題》 次のような出力が得られる理由を考察してください。>>> str("ABC") 'ABC' >>> repr("ABC") "'ABC'"》こちらに移動中です《 ↑TOP関連記事
- Python への扉
- INDEX: R《Python》object.__repr__
- 2009-03-30 実録 はじめての…《19》連結リスト課題
Last updated♪2009/12/06