2012年9月1日土曜日

開発環境

『初めての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 コメント:

コメントを投稿