在pint中,如何将微符号重新定义为µ-,而不是u-?
In pint, how do I redefine the micro- symbol to be µ-, not u-?
在 pint
中,如何重新定义 micro-
前缀拼写为 µ-
而不是 u-
?两者在定义单位时都是别名,但是当获得诸如 {:~}
格式规范的短符号时,即使我尝试重新定义 micro- = 1e-6 = µ-
,pint
也会恢复为 u-
:
In [155]: ureg.define("micro- = 1e-6 = µ-")
WARNING 2016-01-06 15:19:07,017 unit._adder:563: Redefining 'micro' (<class 'pint.definitions.PrefixDefinition'>)
WARNING 2016-01-06 15:19:07,017 unit._adder:563: Redefining 'µ' (<class 'pint.definitions.PrefixDefinition'>)
(请注意,这些警告显然是通过日志记录模块发出的,并且由于我的 .pythonrc
、logging.basicConfig(format=("%(levelname)-8s %(asctime)s %(module)s.%(funcName)s:%(lineno)s: %(message)s"), level=logging.DEBUG)
中的规则而显示)
In [156]: x = 3 * ureg.micrometre
In [157]: ureg._get_symbol("micrometer")
Out[157]: 'um'
In [158]: "{:~}".format(x)
Out[158]: '3 um'
如何重新定义注册表中的 micro-
条目,使 "{:~}".format(x)
给我 3 µm
而不是 3 um
?
编辑
我正在使用来自最新 git 存储库的 pint
:
In [161]: print(pint.__version__)
0.7.dev0
编辑 2
这种情况似乎只有在存在先前定义的使用 u-
前缀的数量时才会发生:
In [3]: ureg = pint.UnitRegistry()
In [4]: q = 12 * ureg.um
In [5]: ureg.define("micro- = 1e-6 = µ-")
WARNING 2016-01-06 15:41:25,477 unit._adder:563: Redefining 'micro' (<class 'pint.definitions.PrefixDefinition'>)
WARNING 2016-01-06 15:41:25,477 unit._adder:563: Redefining 'µ' (<class 'pint.definitions.PrefixDefinition'>)
In [6]: x = 3 * ureg.micrometre
In [7]: "{:~}".format(x)
Out[7]: '3 um'
但是(新session):
In [7]: x = 3 * ureg.micrometre
In [8]: "{:~}".format(x)
Out[8]: '3 µm'
所以我想在使用 u-
别名之前需要重新定义默认值。
您需要在 之前重新定义 µ-
前缀 使用(诚然方便输入) u-
前缀:
In [2]: ureg = pint.UnitRegistry()
In [3]: ureg.define("micro- = 1e-6 = µ-")
In [4]: x = 3 * ureg.um
In [5]: print("{:~}".format(x))
3 µm
但是(其他会话):
In [3]: x = 3 * ureg.um
In [4]: ureg.define("micro- = 1e-6 = µ-")
In [5]: print("{:~}".format(x))
3 um
在 pint
中,如何重新定义 micro-
前缀拼写为 µ-
而不是 u-
?两者在定义单位时都是别名,但是当获得诸如 {:~}
格式规范的短符号时,即使我尝试重新定义 micro- = 1e-6 = µ-
,pint
也会恢复为 u-
:
In [155]: ureg.define("micro- = 1e-6 = µ-")
WARNING 2016-01-06 15:19:07,017 unit._adder:563: Redefining 'micro' (<class 'pint.definitions.PrefixDefinition'>)
WARNING 2016-01-06 15:19:07,017 unit._adder:563: Redefining 'µ' (<class 'pint.definitions.PrefixDefinition'>)
(请注意,这些警告显然是通过日志记录模块发出的,并且由于我的 .pythonrc
、logging.basicConfig(format=("%(levelname)-8s %(asctime)s %(module)s.%(funcName)s:%(lineno)s: %(message)s"), level=logging.DEBUG)
中的规则而显示)
In [156]: x = 3 * ureg.micrometre
In [157]: ureg._get_symbol("micrometer")
Out[157]: 'um'
In [158]: "{:~}".format(x)
Out[158]: '3 um'
如何重新定义注册表中的 micro-
条目,使 "{:~}".format(x)
给我 3 µm
而不是 3 um
?
编辑
我正在使用来自最新 git 存储库的 pint
:
In [161]: print(pint.__version__)
0.7.dev0
编辑 2
这种情况似乎只有在存在先前定义的使用 u-
前缀的数量时才会发生:
In [3]: ureg = pint.UnitRegistry()
In [4]: q = 12 * ureg.um
In [5]: ureg.define("micro- = 1e-6 = µ-")
WARNING 2016-01-06 15:41:25,477 unit._adder:563: Redefining 'micro' (<class 'pint.definitions.PrefixDefinition'>)
WARNING 2016-01-06 15:41:25,477 unit._adder:563: Redefining 'µ' (<class 'pint.definitions.PrefixDefinition'>)
In [6]: x = 3 * ureg.micrometre
In [7]: "{:~}".format(x)
Out[7]: '3 um'
但是(新session):
In [7]: x = 3 * ureg.micrometre
In [8]: "{:~}".format(x)
Out[8]: '3 µm'
所以我想在使用 u-
别名之前需要重新定义默认值。
您需要在 之前重新定义 µ-
前缀 使用(诚然方便输入) u-
前缀:
In [2]: ureg = pint.UnitRegistry()
In [3]: ureg.define("micro- = 1e-6 = µ-")
In [4]: x = 3 * ureg.um
In [5]: print("{:~}".format(x))
3 µm
但是(其他会话):
In [3]: x = 3 * ureg.um
In [4]: ureg.define("micro- = 1e-6 = µ-")
In [5]: print("{:~}".format(x))
3 um