2014年8月26日火曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の5章(構造体、共用体、ビットフィールド: 独自の構造を使う)、長いエクササイズ(p.228)をpythonで考えてみる。

長いエクササイズ(p.228)

コード(BBEdit, Emacs)

sample228.py

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

class Exercise:
    def __init__(self, description, duration):
        self.description = description
        self.duration = duration

class Meal:
    def __init__(self, ingredients, weight):
        self.ingredients = ingredients
        self.weight = weight

class Preferences(Meal, Exercise):
    def __init__(self, ingredients, weight, description, duration):
        Meal.__init__(self, ingredients, weight)
        Exercise.__init__(self, description, duration)
    @property
    def label(self):
        return '餌は{0:2.2f}キロの{1}を与え、{2}を{3:2.2f}時間行わせます。'\
    .format(self.weight, self.ingredients, self.description, self.duration)


class Fish(Preferences):
    def __init__(self, ingredients, weight, description, duration, name,
                 species, teeth, age):
        Preferences.__init__(self, ingredients, weight, description, duration)
        self.name = name
        self.species = species
        self.teeth = teeth
        self.age = age

    @property
    def catalog(self):
        return '{0}は{1}であり、歯は{2}本あります。年齢は{3}才です。'.format(
            self.name, self.species, self.teeth, self.age)
    
if __name__ == '__main__':
    snappy = Fish(name='スナッピー', species='ピラニア', teeth=69, age=4,
                  ingredients='肉', weight=0.1,
                  description='ジャクジーでの泳ぎ', duration=7.5)
    
    print(snappy.catalog)
    print(snappy.label)

入出力結果(Terminal, IPython)

$ ./sample228.py
スナッピーはピラニアであり、歯は69本あります。年齢は4才です。
餌は0.10キロの肉を与え、ジャクジーでの泳ぎを7.50時間行わせます。
$

0 コメント:

コメントを投稿