python - 如何比较 Python 中的 Fraction 对象?
问题描述
我有一个等于分数的用例。在 Python 中找到分数模块。
尝试使用类似的运算符<, == and >
,它似乎有效。
from fractions import Fraction
print(Fraction(5,2) == Fraction(10,4)) # returns True
print(Fraction(1,3) > Fraction(2, 3)) # return False
这是进行比较的预期方式吗?
找不到文档中明确指定的任何内容。
有人可以确认这一点(带有提到它的来源的链接)吗?
解决方案
从 Fraction 的文档中注意到“Fraction 类继承自抽象基类 numbers.Rational,并实现了该类的所有方法和操作。”
查看Rational 的文档,我们发现它“子类型 Real 并添加了分子和分母属性,这应该是最低限度的。”
对于Real,我们发现:
在 Complex 中,Real 添加了对实数起作用的操作。
简而言之,它们是:转换为 float、math.trunc()、round()、math.floor()、math.ceil()、divmod()、//、%、<、<=、> 和>=。
最后是复杂的:
这种类型的子类描述复数并包括在内置复数类型上工作的操作。它们是:复数和布尔值、实数、imag、+、-、*、/、abs()、conjugate()、== 和 != 的转换。除了 - 和 != 之外的所有内容都是抽象的。
所以是的,这些操作已定义并记录在案。
推荐阅读
- c# - XUnit 模拟方法但不返回预期结果
- java - 如何使用 java 代码将证书和私钥导出为单个文件?
- c++ - C++:ar -x 损失符号
- compiler-errors - yacc 错误没有类型声明,但我已经在我的tiger.grm 中声明了这些?
- android - 使用 Intent 打开 Word 文档时始终为只读
- android - 发布 apk 不会打开安装在 react native 中的 firebase
- c# - 你能找到一种类型的对象,它接受 2 种泛型类型,但不管这些类型如何?
- javascript - 将具有父子关系的对象数组与另一个具有子值的对象数组合并
- python - 将元组中的字符串转换为独立字符串
- ios - 当图像是 UITabBar 的选择时使用原始图像颜色的优雅方式