[Python-ideas] Fwd: Make `float('inf') //1 == float('inf')`

Steven D'Aprano steve at pearwood.info
Fri Sep 19 11:52:20 CEST 2014


On Thu, Sep 18, 2014 at 03:31:05PM -0400, Alexander Belopolsky wrote:

> I don't think there is any dispute over what math.floor(inf) should return.
>  POSIX, C99, IEEE and probably many other standards agree that inf should
> be returned as long as the resulting type can represent it.

Why don't we add an integer infinity?

Python int is not a low-level primitive type, it's an object, and can 
support as rich a set of behaviour as we like. We could subclass int, 
give it a pair of singletons Infinity and -Infinity (say), and have 
math.floor(float('inf')) return one of them as needed.

- The subclass need not be a builtin public class, like bool, it 
  could be a private implementation detail. The only promise made
  is that isinstance(Infinity, int) returns True.

- The Infinity and -Infinity instances need not be built-in.

- For that matter, they may not even be singletons.

- We could, but don't necessarily need to, support int('inf').

- But int(float('inf')) and int(Decimal('inf')) should return
  the int Infinity.



-- 
Steven


More information about the Python-ideas mailing list