【发布时间】:2016-12-06 10:14:57
【问题描述】:
我在我的 Python IDE 中启用了兼容性检查,现在我意识到继承的 Python 2.7 代码有很多对 unicode() 的调用,这在 Python 3.x 中是不允许的。
查看了Python2的docs,没有提示如何升级:
我现在不想切换到 Python3,但可能在将来。
代码包含大约 500 次对 unicode() 的调用
如何进行?
更新
用户 vaultah 阅读pyporting 指南的评论已获得数次投票。
我目前的解决方案是这样的(感谢 Peter Brittain):
from builtins import str
...我在 pyporting 文档中找不到这个提示.....
【问题讨论】:
-
@vaultah 这不是一个普遍的问题。这只是关于
unicode()的电话。在我目前工作的代码库中,有大约 700 次调用此方法。我该怎么办? -
这个问题没有好的答案。如果你幸运的话,你可以删除对
unicode的调用,你就可以开始了。 Python 3 中的所有字符串都是 unicode。如果这不起作用,那么预计会有 lots 的工作。从 str 到 unicode 文字和字节的转换是迄今为止从 Python 2 切换到 3 时最不兼容的变化。 -
难道你不能在 Python 3 中定义自己的
unicode()函数,除了return str(arg)之外什么都不做? -
您可以将
str分配给unicode-unicode = str(不带括号)。它应该可以工作。
标签: python python-3.x python-unicode