開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python 3.4 (プログラミング言語)
Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の5章(構造体、共用体、ビットフィールド: 独自の構造を使う)、コンパイラになってみよう(p.251)をpythonで考えてみる。
コンパイラになってみよう(p.251)
コード(BBEdit, Emacs)
sample251.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
class Margarita:
def __init__(self, tequila, cointreau, citrus):
self.tequila = tequila
self.cointreau = cointreau
self.citrus = citrus
@property
def p(self):
result = '{0:2.1f}単位のテキーラ\n{1:2.1f}単位のコアントロー\n'.format(
self.tequila, self.cointreau)
if type(self.citrus) == float:
result += '{0:2.1f}単位のジュース'.format(self.citrus)
else:
result += '{0}切れのライム'.format(self.citrus)
return result
m1 = Margarita(2.0, 1.0, 0.5)
print(m1.p)
# Pythonでは変数の定義時に初期化が必要。宣言のみはできない
try:
m2
m2 = Margarita(2.0, 1.0, 0.5)
print(m2.p)
except Exception as err:
print(type(err), err)
m3 = '' # 初期化
m3 = Margarita(2.0, 1.0, 0.5) # 型を気にする必要はない
print(m3.p)
入出力結果(Terminal, IPython)
$ ./sample251.py 2.0単位のテキーラ 1.0単位のコアントロー 0.5単位のジュース <class 'NameError'> name 'm2' is not defined 2.0単位のテキーラ 1.0単位のコアントロー 0.5単位のジュース $
0 コメント:
コメントを投稿