Dlaczego True i False zostały zmienione na słowa kluczowe w Pythonie 3
W Pythonie 2 możemy zmienić przypisanieTrue
iFalse
(ale nieNone
), ale wszystkie trzy (True
, False
, iNone
) uznano za zmienne wbudowane. Jednak w Py3k wszystkie trzy zostały zmienione na słowa kluczowe wedługdoktorzy.
Z moich własnych spekulacji mogłem tylko zgadywać, że chodziło o zapobieganie takim zjawiskomto które pochodzą od staregoTrue, False = False, True
wybryk. Jednak w Pythonie 2.7.5, a może i wcześniej, instrukcje takie jakNone = 3
który został ponownie przydzielonyNone
podniesionySyntaxError: cannot assign to None
.
Semantycznie, nie wierzęTrue
, False
, iNone
są słowami kluczowymi, ponieważ są w końcu semantycznie dosłowne, co uczyniła Java. Sprawdziłem PEP 0 (indeks) i nie mogłem znaleźć PEP wyjaśniającego, dlaczego zostały zmienione.
Czy istnieją korzyści związane z wydajnością lub inne powody, dla których stają się one słowami kluczowymi, w przeciwieństwie do literałów lub ich specjalnych obudówNone
w python2?