我有一个等于分数的用例。在Python中找到分数模块。
尝试使用类似的运算符<, == and >
,并且似乎可以正常工作。
from fractions import Fraction
print(Fraction(5,2) == Fraction(10,4)) # returns True
print(Fraction(1,3) > Fraction(2, 3)) # return False
这是进行比较的预期方式吗?
找不到文档中明确指定的任何内容。
有人可以确认这一点(带有指向提及来源的链接)吗?
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] 删除。
我来说两句