Here is another problem in this general area. Multiplying an array by a
float already raises a type error.
    >>> []*0.0
    Traceback (most recent call last):
    TypeError: can't multiply sequence by non-int of type 'float'

This problem can arrse 'by accident'. For example, consider
   >>> x = {0.0}
   >>> x.update(range(3))
   >>> list(x)
   [0.0, 1, 2]

Let's now return to the feature (of the builtin list, tuple and str
classes):
    >>> [1] * (-1) == []
    True

On the one hand I expect there's code that relies on the feature to run
correctly. On the other hand I expect there's code that should raise an
exception but doesn't, because of this feature.

@ericfahlgren
It would be most helpful if you could provide or create a reference to
support your claim, that there is already a lot of code that would fail if
this change was made.

@fjwillemsen
It would be most helpful if you could provide real-world examples of code
where raising an exception would enable better code.

Examples relating this are of course welcome from all, not just the two
named contributors.
-- 
Jonathan
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@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/6M6SRF6TGKR26BCCC2JIQEKFEFYLADZQ/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to