在Python 2和Python 3中有效的原始unicode文字?

Jim*_*m K 7 python unicode python-2.x python-3.x

显然ur"",Python 3中的语法已被禁用.但是,我需要它! "为什么?" 你可能会问.好吧,我需要u前缀,因为它是一个unicode字符串,我的代码需要在Python 2上工作.至于r前缀,也许它不是必需的,但我正在使用的标记格式需要大量的反斜杠,这将有助于避免错误.

这是一个在Python 2中执行我想要的但在Python 3中是非法的示例:

tamil_letter_ma = u"\u0bae"
marked_text = ur"\a%s\bthe Tamil\cletter\dMa\e" % tamil_letter_ma
Run Code Online (Sandbox Code Playgroud)

遇到这个问题后,我找到了http://bugs.python.org/issue15096并注意到这个引用:

很容易克服这个限制.

有人会关心如何提出一个想法吗?

相关:Python中"u"和"r"字符串标记到底是做什么的,原始字符串文字是什么?

fal*_*tru 10

为什么不使用原始字符串文字(r'....'),您不需要指定,u因为在Python 3中,字符串是unicode字符串.

>>> tamil_letter_ma = "\u0bae"
>>> marked_text = r"\a%s\bthe Tamil\cletter\dMa\e" % tamil_letter_ma
>>> marked_text
'\\a?\\bthe Tamil\\cletter\\dMa\\e'
Run Code Online (Sandbox Code Playgroud)

为了使它在Python 2.x中工作,在源代码的最开头添加以下Future import语句,以便源代码中的字符串文字成为unicode.

from __future__ import unicode_literals
Run Code Online (Sandbox Code Playgroud)