如何在Python中比较小数对象?

Sreeragh AR:

我有一个等于分数的用例。在Python中找到分数模块。

尝试使用类似的运算符<, == and >,并且似乎可以正常工作。

from fractions import Fraction
print(Fraction(5,2) == Fraction(10,4)) # returns True
print(Fraction(1,3) > Fraction(2, 3))  # return False

这是进行比较的预期方式吗?

找不到文档中明确指定的任何内容。

有人可以确认这一点(带有指向提及来源的链接)吗?

prvnsmpth:

查看分数模块实现,可以看到__eq__已定义:

def __eq__(a, b):
    """a == b"""
    if type(b) is int:
        return a._numerator == b and a._denominator == 1
    if isinstance(b, numbers.Rational):
        return (a._numerator == b.numerator and
                a._denominator == b.denominator)
    ...

所以是__lt____gt__

def __lt__(a, b):
    """a < b"""
    return a._richcmp(b, operator.lt)

def __gt__(a, b):
    """a > b"""
    return a._richcmp(b, operator.gt)

因此==</ >运算符将按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章