Thank you! As you may or may not have noticed in a different thread, we're going through a small existential crisis regarding the usefulness of is_integer() -- Serhiy believes it is not useful (and even an attractive nuisance) and should be deprecated. OTOH the existence of dec_mpd_isinteger() seems to validate to me that it actually exposes useful functionality (and every Python feature can be abused, so that alone should not be a strong argument for deprecation).
On Wed, Mar 21, 2018 at 1:33 AM, Robert Smallshire <r...@sixty-north.com> wrote: > As requested on the bug tracker, I've submitted a pull request for > is_integer() support on the other numeric types. > https://github.com/python/cpython/pull/6121 > > These are the tactics I used to implement it: > > - float: is_integer() already exists, so no changes > > - int: return True > > - Real: return x == int(x). Although Real doesn't explicitly support > conversation to int with __int__, it does support conversion to int with > __trunc__. The int constructor falls back to using __trunc__. > > - Rational (also inherited by Fraction): return x.denominator == 1 as > Rational requires that all numbers must be represented in lowest form. > > - Integral: return True > > - Decimal: expose the existing dec_mpd_isinteger C function to Python as > is_integer() > > > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: https://mail.python.org/mailman/options/python-dev/ > guido%40python.org > > -- --Guido van Rossum (python.org/~guido)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com