開発環境
- OS X Lion - Apple(OS)
- BBEdit - Bare Bones Software, Inc.(Text Editor)
- Script言語: Python
『初めての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 コメント:
コメントを投稿