猿问

禁止在python字符串中指示unicode的u'prefix

禁止在python字符串中指示unicode的u'prefix

有没有办法在python中全局抑制unicode字符串指示符?我在应用程序中专门使用unicode,并做了很多交互式的东西。将u'prefix'显示在我的所有调试输出中是不必要和令人讨厌的。可以关掉吗?



梵蒂冈之花
浏览 570回答 3
3回答

慕姐8265434

您可以使用Python 3.0 ..默认字符串类型是unicode,因此u''不再需要前缀..简而言之,没有。你无法关闭它。所述u来源于unicode.__repr__方法,它是用来在REPL显示的东西:>>> print repr(unicode('a'))u'a'>>> unicode('a')u'a'如果我没有弄错,你不能在不重新编译Python的情况下覆盖它。最简单的方法是简单地打印字符串..>>> print unicode('a')a如果你使用unicode()内置来构造你的所有字符串,你可以做类似的事情。>>> class unicode(unicode):...     def __repr__(self):...             return __builtins__.unicode.__repr__(self).lstrip("u")... >>> unicode('a')a但是不要这样做,这太可怕了

慕村9548890

我有一个案例,我需要删除你的前缀因为我正在设置一些javascript与python作为HTML模板的一部分。一个简单的输出将u前缀保留为dict键,例如var turns = [{u'armies':2...];打破了javascript。为了获得所需的输出javascript,我使用json python模块为我编码字符串:turns = json.dumps(turns)这在我的特定情况下起作用,因为键都是ascii,所以不用担心编码。您可以将此技巧用于调试输出。

慕容森

from __future__ import unicode_literals从Python 2.6(2008年10月1日发布)开始提供。它是Python 3中的默认值。它允许u''在源代码中省略前缀,尽管它不会改变repr(unicode_string)会产生误导。您可以sys.displayhook()在Python REPL中覆盖,以显示您喜欢的对象。您也可以覆盖__repr__自己的自定义对象。
随时随地看视频慕课网APP

相关分类

Python
我要回答