我有一个品脱数量,我希望字符串出现单位缩写(即 SI 前缀和单位字母),但没有 a/
来表示除法。
所以换句话说,我希望字符串显示为
'cm g µs⁻¹'
内置的漂亮格式几乎可以满足我的需求,但我想对其进行自定义,以便乘法由空格表示,分母数量由负指数表示。
>>> import pint
>>> ureg = pint.UnitRegistry()
>>> u = ureg['g cm / us']
>>> f"{u.units:~P}"
'cm·g/µs'
通过查看 pint 源代码,我想出了一种方法来做我想做的事,但它涉及访问_units
单位类的私有属性,所以我想知道是否有更好的方法
>>> import pint
>>> ureg = pint.UnitRegistry()
>>> u = ureg['g cm / us']
>>> abbrv_units = {ureg.get_symbol(k) : v for k, v in u.units._units.items()}
>>> pint.formatting.format_unit(abbrv_units, 'P', as_ratio=False, product_fmt=' ')
'cm g µs⁻¹'
我想如果我可以使用~
格式说明符或某种函数来缩写字符串会很好。