什么是 unicode() 函数的 python 2/3 兼容替代方案?

What is a python 2/3 compatible alternative to the unicode() function?

是否有 python 2 unicode() 函数的替代方法,可用于可与 python 2 和 3 一起使用的代码,并且肯定会在中生成 unicode 输出python2?

我正在编写测试代码,我绝对想生成 unicode 输出,因此如果它与执行路径中某处的非 unicode 字符串组合,它将在测试中爆炸 - 例如

'stuff %s' % u'unistuff'

对于一般情况,我看到它建议只使用 str(),但在 python 2 中不生成 unicode。

我想我可以做到:

if six.PY3:
    unicode = str

但肯定有一些官方支持的方式。

(而且很难 google 因为所有结果都是关于 unicode 字符串而不是 unicode 函数本身)。

根据 the documentation(我建议阅读...)你想要 six.text_type:

Type for representing (Unicode) textual data. This is unicode() in Python 2 and str in Python 3.