В pint
, как переопределить префикс micro-
, который будет пишется µ-
, а не u-
? Оба псевдонимами при определении единицы, но при получении короткого символа, например, как со спецификацией формата {:~}
, pint
возвращается к 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
?
Редактировать
Я использую pint
из последнего хранилища мерзавца:
In [161]: print(pint.__version__)
0.7.dev0
Edit 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 [7]: x = 3 * ureg.micrometre
In [8]: "{:~}".format(x)
Out[8]: '3 µm'
Так что я полагаю, переопределение по умолчанию должно быть сделано перед использованием u-
псевдонима.
отлично работает для me выводит «3 мкм», и я также не получаю предупреждения, какую версию вы используете? –
Huh. Я только что перезапустил 'IPython', и теперь он * показывает * 3 μm'. Кажется, что-то еще происходит ... Возможно, некоторые ранее определенные величины блокируют 'pint' от очистки префикса' u-'? – gerrit