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, FalseeNone) 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, FalseeNone 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?

questionAnswers(3)

yourAnswerToTheQuestion