Python's six 'constants' behave in six different ways
Python's pre-declared constants are kinda weird
Python's pre-declared constants—True, False, None, __debug__, Ellipsis, and NotImplemented—each have unique quirks. True, False, and None are lexical tokens, not identifiers, making expressions like x.True a SyntaxError. __debug__ is the only identifier that can't be assigned to, yet it can be shadowed in the builtins module without effect. Ellipsis and NotImplemented are just builtins, easily shadowed, while ... remains constant. The post explores these inconsistencies and the curious rationale behind them.
so in some sense, `...` is a real constant, but `Ellipsis` isn't. weird, right?