
On Mon, May 31, 2021 at 12:20 PM MRAB <python@mrabarnett.plus.com> wrote:
On 2021-05-31 15:55, Paul Bryan wrote:
If you're proposing prevention of monkey patching Ellipsis, I think you'll have to go all-in on all builtins.
For example:
str = int
str
<class 'int'>
str == int
True
If you rebind str to int, the repr of str will say <class 'int'>, so you can tell that something's happened, but the repr of ... is always 'Ellipsis', even though you've rebound Ellipsis.
Exactly. Thinking some more about it, perhaps the confusion would be sufficiently reduced if the repr of '...' would be 'Ellipsis (...)', and use this repr to appear in error messages rather than simply the name Ellipsis.
On Mon, 2021-05-31 at 11:37 -0300, André Roberge wrote:
In Python `...` is referred to as `Ellipsis` and cannot be assigned to. Yet, one can assign any value to the name `Ellipsis`.
Consider the following:
```
... Ellipsis ... == Ellipsis True Ellipsis Ellipsis Ellipsis = 3 Ellipsis 3 ... = 4 File "<stdin>", line 1 ... = 4 ^ SyntaxError: cannot assign to Ellipsis # But I just did assign a new value to the name Ellipsis above. Ellipsis 3 ... Ellipsis ... == Ellipsis False
For consistency, `Ellipsis` (the name) should **always** refer to the same object that `...` refers to, so that both could not be assigned a new value.
_______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-leave@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/NE2FAW... Code of Conduct: http://python.org/psf/codeofconduct/