開発環境
- 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 コメント:
コメントを投稿