发布于 2020-08-22 18:02:58
numbers模块提供了一些抽象基类,如果要实现自己的数字类型,可以使用这些类。你不需要使用它们,但是如果你想要的话,它们可以帮助你把事情做好。
它们不是可以随时访问的内置类型,它们是不同的。Python中的具体数字类型是int、float、complex,如果您愿意进入标准库,则是fractions.Fraction和decimal.Decimal。
在问题中显示的交互式会话中,您正在创建一个complex对象和一个float (通过除以整数)。这与numbers.Complex或numbers.Rational不同。虽然numbers.Complex类的API与具体的complex类型的实际工作方式非常匹配,但float类型与抽象的numbers.Rational API有很大的不同。
如果您只想将float表示为一个分数,请尝试在其上调用as_integer_ratio()方法。这可能不是你期望的分数!这是因为浮点值并不总是精确的,特别是当二进制表示被无限重复并且需要在某个地方被截断时。
https://stackoverflow.com/questions/63538636
复制相似问题