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/

Reply via email to