no-unicode_literals¶
from __future__ import unicode_literals
の使用はアンチパターンとなります。 これには、
以下のような問題があります。
- これにより、ファイルの途中に移動して、 未指定のリテラル文字列がバイト文字列かテキスト文字列かを理解することができなくなります。 プログラマーは最初にファイルの先頭をチェックして、 インポートがあるかどうかを確認する必要があります。
- これにより、 文字列リテラルを介してネイティブ文字列 (python2 ではバイト文字列、python3 ではテキスト文字列である必要がある文字列) を定義する機能が削除されます。
- これは、コンテキストの切り替えに役に立ちます。 プログラマーは、 unicode_literals がある 1 つのファイルを読み取り、未指定の文字列リテラルがテキスト文字列であること認識していますが、 (おそらくプログラム実行をサードパーティのライブラリにトレースする) 別のファイルに切り替え、 未指定の文字列リテラルとは何かについての理解を切り替える必要があります。