乘法时,Python Pint不会合并相同数量的单位

时间:2018-10-15 22:29:21

标签: python pint

使用Python Pint,当乘以相同数量的单位时,我得到一个奇怪的结果。您会期望它们合并,但它们不会合并。例如:

from pint import UnitRegistry
units = UnitRegistry()

然后:

(3 * units.m) * ( 5 * units.m)  

...结果为:

<Quantity(15, 'meter ** 2')>

...这是正确的。但是,如果我将因子之一转换为毫米,就像这样:

(3 * units.m) * ( 5000 * units.mm)

...它给出了一个废话答案:

<Quantity(15000, 'meter * millimeter')>

除法和质量,时间等其他维度也会发生同样的事情。

但是,加法确实有效:

(3 * units.m) + ( 5000 * units.mm)
<Quantity(8.0, 'meter')>

有人知道吗?

1 个答案:

答案 0 :(得分:2)

本教程提到了to_base_unitsto_reduced_units方法,也许其中之一可以完成您需要的转换https://pint.readthedocs.io/en/latest/tutorial.html

它还表示您可以使用参数UnitRegistry实例化auto_reduce_dimensions=True以使其自动完成。默认情况下禁用它,因为它可能是一项昂贵的操作