Por que True e False foram alterados para palavras-chave no Python 3?
No Python 2, poderíamos reatribuirTrue
eFalse
(mas nãoNone
), mas todos os três (True
, False
eNone
) foram consideradas variáveis incorporadas. No entanto, no Py3k todos os três foram alterados em palavras-chave como poros docs.
De minha própria especulação, eu só podia imaginar que era para evitar travessuras comoisto que derivam do antigoTrue, False = False, True
pegadinha. No entanto, no Python 2.7.5, e talvez antes, instruções comoNone = 3
que foi reatribuídoNone
levantadoSyntaxError: cannot assign to None
.
Semanticamente, eu não acreditoTrue
, False
eNone
são palavras-chave, uma vez que são finalmente literais semanticamente, que é o que o Java fez. Eu verifiquei PEP 0 (o índice) e eu não consegui encontrar um PEP explicando porque eles foram alterados.
Existem benefícios de desempenho ou outras razões para torná-los palavras-chave, em oposição a literais ou especiais-casing-los comoNone
em python2?