Python面向对象编程。编写程序以执行丰富的比较

2024-04-18 20:13:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在通过python学习面向对象编程。我正在尝试编写一个程序,为一个分数类编写三个特殊方法,这些方法重载运算符以执行a和b之间的丰富比较(a<;b,a>;b,a==b)。示例如下:

>>>a = Fraction(1, 2)
>>>b = Fraction(1, 3)
>>>a==b
False 
>>>a > b
True
>>>a < b
False
>>>a = Fraction(4, 8)
>>>b = Fraction(2, 4)
>>>a ==b
True
>>>a > b
False
>>>a < b
False

我真的不明白它要做什么。任何关于如何帮助我开始的帮助都会很好。非常感谢。你知道吗


Tags: 方法ltgt程序falsetrue示例运算符
1条回答
网友
1楼 · 发布于 2024-04-18 20:13:33

下面是一个简单的代码,以说明这应该如何作为一个例子。 它在python中很简单,因为它默认有eqne。。。你只需要改变逻辑部分。你知道吗

  class Fraction:
        a = 0
        b = 0

        def __init__(self,A,B):
            self.a=A
            self.b=B
        def __eq__(self,other):
            return (self.b/self.a) == (other.b/other.a)

        def __ne__(self,other):
            return not(self.__eq__)

        #*****************************
        # below code only demo, not for your logical
        #*****************************
        def __lt__(self,other):
            return (self.a<other.a)

        def __le__(self,other):
            return(self.a<=other.a)

        def __gt__(self,other):
            return(self.a>other.a)

        def __ge__(self,other):
            return(self.a>=other.a)



    fra_1=Fraction(4,8)
    fra_2=Fraction(2,4)
    print("(fra_1==fra_2) is:",fra_1==fra_2)

相关问题 更多 >