SymPy是在 Python 中进行单位转换的好工具:
>>> from sympy.physics import units
>>> 12. * units.inch / units.m
0.304800000000000
您可以轻松滚动自己的:
>>> units.BTU = 1055.05585 * units.J
>>> units.BTU
1055.05585*m**2*kg/s**2
但是,我无法在我的应用程序中实现这一点,除非我可以将 C(绝对)度转换为 K 度到 F 度到 R 度,或者它们的任何组合。
我想也许这样的事情会起作用:
units.degC = <<somefunc of units.K>>
但显然,这是错误的下坡路。关于在 SymPy 中干净地实现“偏移”型单位转换的任何建议?
注意:我愿意尝试其他单位转换模块,但不知道除了Unum之外的任何模块,发现它很麻烦。
编辑:好的,现在很清楚我想要做的是首先确定要比较的两个量是否在同一个坐标系中。(如时间单位参考不同的时期或时区或dB到直线幅度),进行适当的转换,然后进行转换。有没有通用的坐标系管理工具?那太好了。
我会假设°F 和°C 在表达式中始终指代Δ°F Δ°C,但在单独站立时指的是绝对值。我只是想知道是否有一种方法可以创建units.degF
一个函数并在其上添加一个装饰器property()
来处理这两个条件。
但是现在,我将设置units.C == units.K
并尝试在文档中非常清楚地使用函数convertCtoK(...)
以及convertFtoR(...)
在处理绝对单位时。(开个玩笑。不,我不会。)