En Python 2, nous avons pu réaffecter True
et False
(mais pas None
), mais tous les trois (True
, False
, et None
) ont été considérés comme builtin variables. Cependant, dans Py3k tous les trois ont été remplacés par des mots-clés comme par les docs.
De ma propre spéculation, je ne pouvais que deviner que c'était pour empêcher les manigances comme ce qui dérivent de l'ancien True, False = False, True
blague. Toutefois, en Python 2.7.5, et peut-être avant, des déclarations telles que None = 3
qui réaffectés None
soulevées SyntaxError: cannot assign to None
.
Sémantiquement, je ne crois pas qu' True
, False
, et None
sont des mots clés, car ils sont au dernier sémantiquement littéraux, qui est ce que Java a fait. J'ai vérifié PEP 0 (l'index) et je ne pouvais pas trouver un PEP en expliquant pourquoi ils l'ont changé.
Existe-il des avantages de performance ou d'autres raisons pour les mots clés, par opposition à des littéraux ou des spéciales du corps comme de l' None
en python2?