◐ Shell
clean mode source ↗

Message 370233 - Python tracker

`operator` seems a slightly odd place for this.  My naive expectation would be that `float(floatlike_obj)` should do what you want, but it seems that's not the case (too permissive of input types?).  So then, what about an alternate constructor on the float object, `float.from_floatlike(obj)`?  This could be implemented as effectively:

class float:
    @classmethod
    def from_floatlike(cls, obj):
        return cls(PyFloat_FromDouble(PyFloat_AsDouble(obj)))

which would work to get an instance of any float subclass after a round-trip through a double.  I have no idea whether that's actually useful, though :)