Python Pint не объединяет единицы одинакового количества при умножении - PullRequest
0 голосов
/ 16 октября 2018

Используя 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 голосов
/ 16 октября 2018

В руководстве упоминаются методы to_base_units и to_reduced_units, возможно, один из них выполняет необходимое преобразование https://pint.readthedocs.io/en/latest/tutorial.html

Также говорится, что вы можете создать экземпляр UnitRegistry с параметром auto_reduce_dimensions=True, чтобы получитьэто делается автоматически.По умолчанию он отключен, потому что это может быть дорогой операцией

...