4

unicode()Python 2と3の両方で動作し、Python 2で確実にUnicode出力を生成するコードで使用できるPython 2関数の代替手段はありますか?

  • 関数はunicode()python 3には存在しません
  • six.u(u'xyz')Python 2でエラーが発生します

私は間違いなくユニコード出力を生成したいテストコードを書いているので、実行パスのどこかで非ユニコード文字列と組み合わせるとテストで爆発します-例えば

'stuff %s' % u'unistuff'

一般的なケースでは、 を使用することをお勧めしますstr()が、python 2 ではユニコードを生成しません。

私はできると思います:

if six.PY3:
    unicode = str

しかし、確かに公式にサポートされている方法があります。

(そして、すべての結果はユニコード関数自体ではなく、ユニコード文字列に関するものであるため、これをグーグルで検索するのは非常に困難です)。

4

1 に答える 1

3

あなたが望むドキュメント(私は読むことをお勧めします...)に従ってsix.text_type

(Unicode) テキスト データを表す型。これはunicode()Python 2 とstrPython 3 にあります。

于 2015-12-30T14:40:18.177 に答える