2014年9月1日月曜日

開発環境

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

コードマグネット(p.256)

コード(BBEdit, Emacs)

sample256.py

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

import enum

UnitOfMeasure = enum.Enum('UnitOfMeasure', 'count pounds pints')

class FruitOrder:
    def __init__(self, name, country, amount, unit):
        self.name = name
        self.country = country
        self.amount = amount
        self.unit = unit

    def display(self):
        print('この注文に含まれるものは', end='')
        if self.unit == UnitOfMeasure.pints:
            print('{0:2.2f}パイントの{1}です。'.format(self.amount, self.name))
        elif self.unit == UnitOfMeasure.pounds:
            print('{0:2.2f}ポンドの{1}です。'.format(self.amount, self.name))
        else:
            print('{0}個の{1}です。'.format(self.amount, self.name))

if __name__ == '__main__':
    apple = FruitOrder('リンゴ', 'イギリス', 144, UnitOfMeasure.count)
    strawberries = FruitOrder('いちご', 'スペイン', 17.6, UnitOfMeasure.pounds)
    oj = FruitOrder('オレンジジュース', 'アメリカ', 10.5, UnitOfMeasure.pints)

    for order in [apple, strawberries, oj]:
        order.display()

入出力結果(Terminal, IPython)

$ ./sample256.py
この注文に含まれるものは144個のリンゴです。
この注文に含まれるものは17.60ポンドのいちごです。
この注文に含まれるものは10.50パイントのオレンジジュースです。
$

0 コメント:

コメントを投稿