3 回答

TA貢獻1813條經(jīng)驗 獲得超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()內(nèi)置來構造你的所有字符串,你可以做類似的事情。
>>> class unicode(unicode):
... def __repr__(self):
... return __builtins__.unicode.__repr__(self).lstrip("u")
...
>>> unicode('a')
a
但是不要這樣做,這太可怕了

TA貢獻1884條經(jīng)驗 獲得超4個贊
我有一個案例,我需要刪除你的前綴因為我正在設置一些javascript與python作為HTML模板的一部分。一個簡單的輸出將u前綴保留為dict鍵,例如
var turns = [{u'armies':2...];
打破了javascript。
為了獲得所需的輸出javascript,我使用json python模塊為我編碼字符串:
turns = json.dumps(turns)
這在我的特定情況下起作用,因為鍵都是ascii,所以不用擔心編碼。您可以將此技巧用于調(diào)試輸出。

TA貢獻1853條經(jīng)驗 獲得超18個贊
from __future__ import unicode_literals
從Python 2.6(2008年10月1日發(fā)布)開始提供。它是Python 3中的默認值。
它允許u''
在源代碼中省略前綴,盡管它不會改變repr(unicode_string)
會產(chǎn)生誤導。
您可以sys.displayhook()
在Python REPL中覆蓋,以顯示您喜歡的對象。您也可以覆蓋__repr__
自己的自定義對象。
添加回答
舉報