I received an interesting question in the mail recently: What is the difference between keywords and literals? Why are True and False keywords rather than literals in python3? I was horrified recently to find that assigning to True/False works in python2. So I went digging, and found that True and False were created to be 'constants' like None in PEP 285. Assignment to None was disallowed in 2.4,

