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