检查 pint 中复杂单元的维数

Check dimensionality of complex unit in pint

我正在尝试检查复杂单位的维数,例如体积 (m^3) 或速度 (ft/min)。如何使用 "pint.check()" 方法查看数量是否属于该类型的维度?

这是我试过的:

import pint
ureg = pint.UnitRegistry()

volume = 4.3 * ureg.gal

这样做很有意义:

volume.dimensionality
Out[3]: <UnitsContainer({'[length]': 3.0})>

所以我尝试了 "check" 函数,但我不知道如何为音量做这个:

volume.check('[length]', 3)

不幸的是,这不起作用:

Traceback (most recent call last):
  File "C:\Users\jle\...\interactiveshell.py", line 3291, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-4722a8cb0b0c>", line 1, in <module>
    volume.check('[length]', 3)
TypeError: check() takes 2 positional arguments but 3 were given

您可以使用 check('[volume]'):

检查音量
import pint
ureg = pint.UnitRegistry()

volume = 4.3 * ureg.gal

# Returns True
volume.check('[volume]')

您可以使用 check('[length]/[time]'):

检查速度
velocity = 1 * ureg.feet / ureg.second

# Returns True
velocity.check('[length]/[time]')