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, и нашел его быть громоздким.
Изменить: Хорошо, теперь ясно, что то, что я хочу сделать, - это сначала определить, находятся ли две сравниваемые величины в одной и той же системе координат. (например, временные единицы, относящиеся к разным эпохам или часовым поясам или дБ до прямой амплитуды), сделайте соответствующее преобразование, а затем выполните преобразование. Существуют ли какие-либо общие инструменты управления системой координат? Это было бы прекрасно.
Я сделал бы предположение, что ° F и ° C всегда относятся к Δ ° F Δ ° C в выражении, но относятся к абсолюту при стоянии в одиночку. Я просто задавался вопросом, есть ли способ сделать функцию units.degF
и нанести на нее декоратор property()
, чтобы справиться с этими двумя условиями.
Но на данный момент я установлю units.C == units.K
и попытаюсь сделать это очень ясно в документации, чтобы использовать функции convertCtoK(...)
и convertFtoR(...)
при работе с абсолютными единицами. (Просто шучу. Нет, не хочу.)