1

品脱单位默认使用全名表示:

>>> import pint
>>> ureg = pint.UnitRegistry()
>>> q = ureg.Quantity('3.456 m^2')
>>> print(q)
3.456 meter ** 2
>>> print('The pretty representation is {:P}'.format(q))
The pretty representation is 3.456 meter²

从文档和这个答案中可以看出,单位可以用简短的形式表示,这是它们在现实世界中通常表示的方式:

>>> print(format(q,'~'))
3.456 m ** 2
>>> print('The pretty representation is {:~P}'.format(q))
The pretty representation is 3.456 m²

但是,我想将短表示设置为默认值,可以吗?

4

2 回答 2

1

我在本教程中字符串格式部分的底部找到了这个。这是一个最小的工作示例:

import pint

ureg = pint.UnitRegistry()
ureg.default_format = '~' # Add this if you want to use abbreviated unit names.
accel = 1.3 * ureg['meter/second**2']
print(f'The acceleration is {accel}')

这输出:The acceleration is 1.3 m / s ** 2

这些也是短单元的有效选项:~L(LaTeX)、~H(HTML) 和~P(Pretty print)。

于 2022-01-07T18:09:34.320 回答
0

我不知道它是错误的,弱的还是非pythonic的,但它似乎有效并且我正在使用它,直到出现更好的解决方案:

import pint
pint.quantity.Quantity.__str__ = lambda self: format(self,'~')

在脚本开头添加这样的行后,所有单位的字符串表示形式都以短格式返回(例如mm,而不是millimeter)。

于 2021-11-08T16:36:21.200 回答