開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料機能制限版、light版)
- Script言語: Python
『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(クラスとオブジェクト指向プログラミング)の24章(クラスのコーディング(詳細))5を解いてみる。
5.
GenericDisplayクラスの__str__(self)メソッドと、その中で呼び出される、GenericDisplayクラスのgatherAttrs(self)メソッドが呼び出される。
確認。
コード(TextWrangler)
sample.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class GenericDisplay:
def gatherAttrs(self):
print("gatherAttrs(self)メソッドが動作開始!")
attrs = "\n"
for key in self.__dict__:
attrs += "\t%s=%s\n" % (key,self.__dict__[key])
return attrs
def __str__(self):
print("__str__(self)メソッドが動作開始!")
return "<%s: %s>" % (self.__class__.__name__,self.gatherAttrs())
class Person(GenericDisplay):
def __init__(self,name,age):
self.name = name
self.age = age
def lastName(self):
return self.name.split()[-1]
def birthDay(self):
self.age += 1
class Employee(Person):
def __init__(self,name,age,job=None,pay=0):
Person.__init__(self,name,age)
self.job = job
self.pay = pay
def birthDay(self):
self.age += 2
def giveRaise(self,percent):
self.pay *= (1.0 + percent)
if __name__ == '__main__':
sue = Employee('Sue Jones',44,job='dev',pay=100000)
print(sue)
入出力結果(Terminal)
$ ./sample.py __str__(self)メソッドが動作開始! gatherAttrs(self)メソッドが動作開始! <Employee: job=dev pay=100000 age=44 name=Sue Jones > $
0 コメント:
コメントを投稿