mar*_*rou 3 python class constants
我希望有一个地方可以存放我的物理常数。
以下答案已经是一个起点: 如何在许多文件中导入常量
所以我有一个名为constants.py的单独文件,我将其导入到我的项目中。
现在,我想保存并访问附加信息:
最终的界面应该是这样的:
import constants as c
print c.R
>>> 287.102
print c.R.units
>>> J/(kg K)
print c.R.doc
>>> ideal gas constant
Run Code Online (Sandbox Code Playgroud)
计算应使用cR来访问该值。
它基本上是一个类,其行为类似于 float 类,但包含两个附加字符串:单位和文档。这可以怎么设计呢?
继承自 class float,您必须覆盖 -__new__方法:
class Constant(float):
def __new__(cls, value, units, doc):
self = float.__new__(cls, value)
self.units = units
self.doc = doc
return self
R = Constant(287.102, "J/(kg K)", "deal gas constant")
print R, R * 2
>>> 287.102 574.204
print R.units
>>> J/(kg K)
print R.doc
>>> ideal gas constant
Run Code Online (Sandbox Code Playgroud)