3 回答

TA贡献1813条经验 获得超2个赞
您可以使用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
但是不要这样做,这太可怕了

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

TA贡献1853条经验 获得超18个赞
from __future__ import unicode_literals
从Python 2.6(2008年10月1日发布)开始提供。它是Python 3中的默认值。
它允许u''
在源代码中省略前缀,尽管它不会改变repr(unicode_string)
会产生误导。
您可以sys.displayhook()
在Python REPL中覆盖,以显示您喜欢的对象。您也可以覆盖__repr__
自己的自定义对象。
添加回答
举报