Paul Ganssle <p.gans...@gmail.com> added the comment:
I believe the relevant code is here: https://github.com/python/cpython/blob/bb86bf4c4eaa30b1f5192dab9f389ce0bb61114d/Objects/rangeobject.c#L1038 It looks like it's a performance enhancement and that for ranges where the beginning and end can fit in a C long, a faster iterator that uses C types under the hood is returned, and for ranges where the boundaries *can't* be represented by a C long, it defaults to the slower `longrange_iterator`, that uses Python integers. It *may* be possible to disguise this from the end user, but I'm not sure if doing so is warranted. I have always treated the specific type returned by `iter()` to be an implementation detail, other than the fact that it is an iterator. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue36693> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com