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