動物の分類でクラスのお勉強
初めてのPython p.475
#!/usr/bin/env python # -*- coding: utf-8 -*- """ zoo.py 以下のような関係を持つクラスを定義し、対応する動物にふさわしいメッセージを表示する Animal | Mammal ┌---+---┐ Cat Dog Primate | Hacker """ class Animal: def reply(self): self.speak() def speak(self): print "an Animal" class Mammal(Animal): pass class Cat(Mammal): def speak(self): print "nya-!" class Dog(Mammal): def speak(self): print "wan!wan!" class Primate(Mammal): def speak(self): print "Hello, World." class Hacker(Primate): # Primateのサブクラス pass
うはー、よくわかる!
>>> from classex import * >>> animal = Animal() >>> mammal = Mammal() >>> tama = Cat() >>> pochi = Dog() >>> human = Primate() >>> man = Hacker() >>> >>> animal.speak() an Animal >>> mammal.speak() an Animal >>> tama.speak() nya-! >>> pochi.speak() wan!wan! >>> human.speak() Hello, World. >>> man.speak() Hello, World.
同じようなことばっかり書いて疲れた・・・
クラス構造と上位に向けてメソッドを探しているのがわかります。