2013年1月10日木曜日

開発環境

『初めてのPython 第3版』(Mark Lutz 著、夏目 大 訳、オライリー・ジャパン、2009年、ISBN978-4-87311-393-7) のVI部(オブジェクト指向プログラミング)のまとめ演習8.(動物の分類)を解いてみる。

その他参考書籍

8.(動物の分類)

コード(BBEdit)

sample.py

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

class Animal:
    def reply(self):
        self.speak()
    def speak(self):
        print("動物の鳴き声")
class Mammal(Animal):
    def speak(self):
        print("哺乳類の鳴き声")
class Cat(Mammal):
    def speak(self):
        print("ニャーニャー")
class Dog(Mammal):
    def speak(self):
        print("ワンワン")
class Primate(Mammal):
    def speak(self):
        print("Hello python!")
class Hacker(Primate): pass

if __name__ == '__main__':
    animal = Animal()
    mammal = Mammal()
    cat = Cat()
    dog = Dog()
    primate = Primate()
    hacker = Hacker()
    for x in [animal, mammal, cat, dog, primate, hacker]:
        print(x.__class__.__name__, end=": ")
        x.reply()

入出力結果(Terminal)

$ ./sample.py
Animal: 動物の鳴き声
Mammal: 哺乳類の鳴き声
Cat: ニャーニャー
Dog: ワンワン
Primate: Hello python!
Hacker: Hello python!
$

ちなみにJavaScriptの場合。

コード(BBEdit)

function Animal(){
  this.speak = function(){
    $('#pre0').append("動物の鳴き声\n");
  };
}
Animal.prototype.reply = function(){
  this.speak();
};
function Mammal(){
  Animal.apply(this, arguments);
  this.speak = function(){
    $('#pre0').append("哺乳類の鳴き声\n");
  };
}
Mammal.prototype = new Animal();
function Cat(){
  Mammal.apply(this, arguments);
  this.speak = function(){
    $('#pre0').append("ニャーニャー\n");
  };
}
Cat.prototype = new Mammal();
function Dog(){
  Mammal.apply(this, arguments);
  this.speak = function(){
    $('#pre0').append("ワンワン\n");
  };
}
Dog.prototype = new Mammal();
function Primate(){
  Mammal.apply(this, arguments);
  this.speak = function(){
    $('#pre0').append("Hello, JavaScript!\n");
  };
}
Primate.prototype = new Mammal();
function Hacker(){
  Primate.apply(this, arguments);
}
Hacker.prototype = new Primate();
var animal = new Animal();
var mammal = new Mammal();
var cat = new Cat();
var dog = new Dog();
var primate = new Primate();
var hacker = new Hacker();
var animals = [animal, mammal, cat, dog, primate, hacker];
for(var i = 0; i < animals.length; i++){
  animals[i].reply();
}








						

0 コメント:

コメントを投稿