Mark Dickinson <dicki...@gmail.com> added the comment:
[Raymond] > It is just the way the language works. As far as I can see, the language doesn't need these constants to be in builtins at all - the only reason for keeping them there is backwards compatibility. As an experiment I tried removing `True`, `False` and `None` from bltinmodule.c, and recompiling, and every single test in the test suite passed just fine. So apparently we're not even testing for the existence of these constants. It's also fun to note that it's still possible to modify these names: >>> import builtins >>> builtins.__dict__["True"] = False >>> builtins.__dict__["True"] False So I'm not sure what purpose having `True`, `False` and `None` in builtins serves. ---------- nosy: +mark.dickinson _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue37318> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com