開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
Learning Python (Mark Lutz (著)、Oreilly & Associates Inc)のPART Ⅵ.(Classes and OOP)、CHAPTER 32(Advanced Class Topics)、Test Your Knowledge: Part VI Exercises 6.(Class tree links)を解いてみる。
その他参考書籍
6.(Class tree links)
コード(BBEdit)
lister.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
class ListInstance:
def __attrnames(self):
result = ''
for attr in sorted(self.__dict__):
result += '\t{0}={1}\n'.format(attr, self.__dict__[attr])
return result
def __str__(self):
return '<Instance of {0}({1}), address {2}:\n{3}>'.format(
self.__class__.__name__,
self.__supers(),
id(self),
self.__attrnames())
def __supers(self):
names = []
return ', '.join(cls.__name__ for cls in self.__class__.__bases__)
class Super:
def __init__(self):
self.data1 = 'spam'
def ham(self):
pass
class Sub(Super, ListInstance):
def __init__(self):
Super.__init__(self)
self.data2 = 'eggs'
self.data3 = 42
def spam(self):
pass
if __name__ == '__main__':
x = Sub()
print(x)
入出力結果(Terminal)
$ ./lister.py <Instance of Sub(Super, ListInstance), address 4332802120: data1=spam data2=eggs data3=42 > $
0 コメント:
コメントを投稿