On Mar 30, 2013, at 12:29 AM, Eric Snow wrote:
>Would it be okay to do a check on __index__ after the PyLong_Check()
>succeeds? Something like this:
>
> if (PyLong_Check(item) &&
> item->ob_type->tp_as_number->nb_index == PyLong_Type.tp_as_number->nb_index) {
> Py_INCREF(item);
> return item;
> }
>
>This is something Nick and I were talking about at the sprints regarding fast
>paths in the abstract API (for mappings and sequences in our case).
I think that would work, yes. With this extra check, overriding __index__()
in the subclass should fail this condition and fall back to the
PyIndex_Check() clause. |