Краткий ответ: да. Вы должны определить операторы сравнения, которые хотите поддерживать, если только вы не унаследуете это поведение от базового класса.

ел бы некоторую помощь на моем CSC HW. Он находится на классах / объектах, и это простой класс для определения круга с именем класса Circle (объект).

Точный текст HW (я завершил первые две части этого hw и, таким образом, эта третья часть является расширением начальной проблемы):

"" "Расширьте свой класс Circle, разрешив сравнение объектов Circle с помощью таких операторов, как <,>,> =, <=, == и! =, Где один круг считается" большим ", чем другой, если он находится в Факт больше (т. е. имеет большую площадь) другого круга.

Следующий код:

A = Circle(2, 5, 1.5)
B = Circle(-6, 1, 1)
print A < B, A != B, A >= B

Должен сгенерировать этот вывод:

False True True

Это мой код для отображения координат и радиуса круга:

class Circle(object):
    def __init__(self, x=0, y=0, r=0):
        self.x = x
        self.y = y
        self.r = r
    def __str__(self,):
        return "Circle at (%d , %d). Radius: %f" % (self.x, self.y, self.r)

def main():
    print Circle(3, 5, 4.0)

main()

Выход этого класса "Круг в (3, 5). Радиус: 4: 000000"

Нам указали на определенную страницу нашего учебника с математическими операторами для классов:уравнение(),GT(),GE(),л(),ле(),Небраска() и т. д. Итак, я подумал, хотел ли мой профессор что-то подобное?

import math
class Circle(object):
    def __init__(self, x=0, y=0, r=0):
        self.x = x
        self.y = y
        self.r = r
    def __str__(self):
        return "Circle at (%d , %d). Radius: %f" % (self.x, self.y, self.r)
    def calcArea(self, r):
        self.r = r
        return (math.pi)*(r**2)
    def __gt__(self, circ1Radius, circ2Radius)
        self.circ1Radius = circ1Radius
        self.circ2Radius = circ2Radius
        r1 = circ1Radius
        r2 = circ2Radius
        r1 > r2 or r2 > r1
    def __ge__(self, circ1Radius, circ2Radius)
    #And so on for __lt__(), __le__(), __ne__(), etc
def main():
    A = Circle(3,4,1.5) 
    B = Circle(1,2,5.0)
    C = Circle(5,7,7) 
    D = Circle(9,8,3)
    print A < B, B > C, A < C, A >= C
main()
#Output should be "True, False, True, False"

Нужно ли нам давать определение / атрибут для каждого метода, который мы хотим использовать в классе? Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос