単位付きの数値を上手に扱うクラスがないかと探しています。
複数の単位系が混在している環境でプログラムを書かねばならない場合、
単位の違いを上手に吸収してくれるクラスがあると便利かと考えています。
質問は、
①このようなクラスがどこかで公開されていませんか?(下記のエネルギーに関するクラスはあくまで例なので参考になるクラスでも構いません)
②自作するしかない場合、気を付けるべき方針はありますか?
以下に自分が作るならこのような感じだろうかというサンプルスクリプトを記載しました。
改善点があればご指摘いただけると幸いです。
以上よろしくお願いいたします。
python
1class EnergyUnitUnification: 2 """ 3 エネルギーの単位を統一することで利便性を高めるためのクラス。 4 全ての単位をkj/molで管理することで単位の統一を図る。 5 """ 6 HARTREE2KJMOL = 627.51 # 1 Hartree = 627.51 kJ/mol 7 8 def __init__(self, energy, unit='hartree'): 9 if unit == 'hartree': 10 self.value = energy * self.HARTREE2KJMOL 11 elif unit == 'kjmol': 12 self.value = energy 13 else: 14 print('PLEASE add new unit') 15 16 def get_hartree(self): 17 return self.value / self.HARTREE2KJMOL 18 19 def get_kjmol(self): 20 return self.value 21 22 def __add__(self, other): 23 return self.value + other.value 24 25 def __mul__(self, other): 26 return self.value + other.value
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/10 08:48