Python 2 では、Trueandを再代入できましFalseたが ( はできませんでしたNone)、3 つすべて ( True、False、およびNone) は組み込み変数と見なされていました。ただし、Py3k では、3 つすべてがdocsに従ってキーワードに変更されました。
私自身の推測では、昔の悪ふざけに由来するこのような悪ふざけを防ぐためであるとしか推測できませんでしたTrue, False = False, True。ただし、Python 2.7.5 では、おそらくそれ以前は、None = 3which reassignedなどのステートメントで が発生しましNoneたSyntaxError: cannot assign to None。
True意味的には、 、False、およびがキーワードだとは思いませんNone。なぜなら、それらは最終的に意味的にリテラルであり、Java が行ったことだからです。PEP 0 (インデックス) を確認しましたが、変更された理由を説明する PEP が見つかりませんでした。
Noneリテラルやpython2のような特別なケースではなく、キーワードにするパフォーマンス上の利点やその他の理由はありますか?