Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在品脱中,如何将微符号重新定义为µ;-,不是u-?_Python_Pint - Fatal编程技术网

Python 在品脱中,如何将微符号重新定义为µ;-,不是u-?

Python 在品脱中,如何将微符号重新定义为µ;-,不是u-?,python,pint,Python,Pint,在中,如何将micro-前缀重新定义为µ-而不是u-?在定义单位时,两者都是别名,但在获取短符号(如使用{:~}格式规范)时,pint会恢复为u-,即使我尝试重新定义micro-=1e-6=µ-: In [155]: ureg.define("micro- = 1e-6 = µ-") WARNING 2016-01-06 15:19:07,017 unit._adder:563: Redefining 'micro' (<class 'pint.definitions.PrefixDef

在中,如何将
micro-
前缀重新定义为
µ-
而不是
u-
?在定义单位时,两者都是别名,但在获取短符号(如使用
{:~}
格式规范)时,
pint
会恢复为
u-
,即使我尝试重新定义
micro-=1e-6=µ-

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'>)
我如何在注册表中重新定义
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'
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

因此,我假设在使用
u-
别名之前需要重新定义默认值。

您需要在使用
µ-
前缀之前重新定义
前缀(当然很方便,可以更容易地键入)
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'
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
但是(其他会议):


对我来说很好,输出
3µm
,而且我也没有收到任何警告,你使用的是什么版本?嗯。我刚刚重新启动了
IPython
,现在它确实显示了
3µm
。似乎还发生了其他事情……也许以前定义的一些量会阻止
pint
清除
u-
前缀?
In [3]: x = 3 * ureg.um

In [4]: ureg.define("micro- = 1e-6 = µ-")

In [5]: print("{:~}".format(x))
3 um