開発環境
- 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 コメント:
コメントを投稿