2012年12月27日木曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(オブジェクト指向プログラミング)24章(クラスのコーディング(詳細))の練習問題6を解いてみる。

その他参考書籍

6.

GenericDisplayクラスの__str__メソッドが動作して、そのなかにあるgatherAttrsメソッド(これもツリー上を検索されてGenericDisplayクラスのメソッドに辿り着く)が動作する。

確認。

コード(BBEdit)

sample.py

#!/usr/bin/env python3.3
#-*- coding: utf-8 -*-

class GenericDisplay:
    def gather_attrs(self): return "gather_attrs"
    def __str__(self): return "{0} {1}".format("str", self.gather_attrs())
    

class Person(GenericDisplay):
    def __init__(self): print("init")
    def last_name(self):print("last_name")
    def birth_day(self): print("birth_day")

class Employee(Person):
    def __init__(self):print("Employee init")
    def birth_day(self):print("Employee birth_day")
    def give_raise(self): print("give_raise")
    
if __name__ == '__main__':
    sue = Employee()
    print(sue)

入出力結果(Terminal)

$ ./sample.py
Employee init
str gather_attrs
$

ちなみにJavaScriptの場合。

コード(BBEdit)


var GenericDisplay = function(){};
GenericDisplay.prototype.gather_attrs = function(){
  return "gather_attrs";
};
GenericDisplay.prototype.toString = function(){
  return "str" + " " + this.gather_attrs();
};
var Person = function(){
  GenericDisplay.apply(this);
};
Person.prototype = new GenericDisplay();
Person.prototype.last_name = function(){
  $('#pre0').append("last_name\n");
};
Person.prototype.birth_day = function(){
  $('#pre0').append("birth_day\n");
};
var Employee = function(){
  Person.apply(this);
};
Employee.prototype = new Person();
Employee.prototype.birth_day = function(){
  $('#pre0').append("Employee birth_day\n");
};
Employee.prototype.give_raise = function(){
  $('#pre0').append("give_raise\n");
};
var sue = new Employee();
$('#pre0').text(sue);








						

0 コメント:

コメントを投稿