On 7/5/2017 12:21 AM, Terry Reedy wrote:
On 7/4/2017 6:31 PM, Greg Ewing wrote:
Terry Reedy wrote:
Attaching a *constant* string is very fast, to the consternation of
people who would like the index reported.
Actually, the constant string should be attached to the class, so there
is no time needed.
I should say, a default string, or parameter default value. I just
checked and Python gives the numerator type the ZeroDivisionError
message and the sequence type in the IndexError message, so scratch that
idea.
Seems to me that storing the index as an attribute would help
with this. It shouldn't be much slower than storing a constant
string,
Given that the offending int is available as a Python int, then storing
a reference should be quick, though slower than 0 (see above ;-).
0 is wrong. Just a reference storage in both cases.
and formatting the message would be deferred until
it's needed, if at all.
I agree that this would be the way to do it. I will let an advocate of
this enhancement lookup the rejected issue (there may be more than one)
proposing to make the bad index available and see if this is the actual
proposal rejected and if so, why (better than I may remember).
It occurs to me that if the exception object has no reference to any
python object, then all would be identical and only one cached instance
should be needed. I checked and neither IndexError nor
ZeroDivisionError do this.
--
Terry Jan Reedy
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/