Python 2.x:如何自动执行unicode而不是字符串?

Ian*_*non 5 python automated-tests static-analysis enforcement

如何自动执行测试以强制Python 2.x代码的主体不包含字符串实例(仅限unicode实例)?

例如.

我可以在代码中执行此操作吗?

是否有具有此功能的静态分析工具?

编辑:

我想在Python 2.5中使用这个应用程序,但事实证明这不可能,因为:

  1. 2.5不支持 unicode_literals
  2. kwargs字典键不能是unicode对象,只能是字符串

所以我接受了答案,说这是不可能的,即使它是由于不同的原因:)

bob*_*nce 1

您不能强制所有字符串都是 Unicode;即使from __future__ import unicode_literals在模块中,字节字符串也可以写为b'...',就像在 Python 3 中一样。

\n\n

一个选项可以用来获得与unicode_literals全局相同的效果:命令行选项-U。然而它在 2.x 系列早期就被放弃了,因为它基本上破坏了所有脚本。

\n\n

你这样做的目的是什么?废除字节串是不可取的。它们不是 \xe2\x80\x9cbad\xe2\x80\x9d 并且 Unicode 字符串也不是通用的 \xe2\x80\x9cbetter\xe2\x80\x9d;它们是两种不同的动物,您将需要它们。与二进制文件和网络服务通信肯定需要字节字符串。

\n\n

如果您想准备好过渡到 Python 3,最好的策略是b'...'为所有您真正想要作为字节的字符串以及u'...'本质上是 Unicode 的字符串编写。默认字符串'...'格式可用于其他所有内容、您不关心的地方和/或 Python 3 是否更改默认字符串类型。

\n