開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(クラスとオブジェクト指向プログラミング)のまとめ演習6(__bases__属性)を解いてみる。
その他参考書籍
6.
コード(TextWrangler)
sample.py
#!/usr/bin/env python #-*- coding: utf-8 -*- class Lister: def __repr__(self): return ("<Instance of %s(%s), address %s:\n%s>" % (self.__class__.__name__, self.superclasses(), id(self), self.attrnames())) def superclasses(self): result = '' bln = 0 for superclass in self.__class__.__bases__: if bln: result = result + ', ' bln = 1 result = result + superclass.__name__ return result def attrnames(self): result = '' for attr in self.__dict__.keys(): if attr[:2] == '__': result = result + "\tname %s=<built-in>\n" %attr else: result = result + "\tname %s=%s\n" %(attr,self.__dict__[attr]) return result class Super: def __init__(self): self.data1 = 'spam' class Sub(Super, Lister): def __init__(self): Super.__init__(self) self.data2 = 'eggs' self.data3 = 42 if __name__ == '__main__': X = Sub() print(X)
入出力結果(Terminal)
$ ./sample.py <Instance of Sub(Super, Lister), address 4318206928: name data1=spam name data3=42 name data2=eggs > $
0 コメント:
コメントを投稿