我试图编写一个方法(它),将矩形的大小(区域)与作为参数传递的另一个矩形的区域进行比较:
class Rectangle:
def __init__(self, x, y):
self.width = x
self.height = y
def area(self):
a = self.width * self.height
return a
def __it__(self,second):
return self.area < second.area
但我一直收到错误:
TypeError: unorderable types: Rectangle() < Rectangle()
我不确定如何解决这个问题
答案 0 :(得分:4)
你有一个错字。它是__lt__
,而不是__it__
,您需要将area()
称为函数,除非您将其设置为property
。
修复所有......
>>> class Rectangle:
... def __init__(self, x, y):
... self.width = x
... self.height = y
... def area(self):
... a = self.width * self.height
... return a
... def __lt__(self,second):
... return self.area() < second.area()
...
>>> Rectangle(1,3) > Rectangle(4,5)
False
答案 1 :(得分:0)
区域是一种方法,你使用它就好像它是一个变量。添加parens应该修复它(如果你试图做的少于,它应该是__lt__
):
def __lt__(self, second):
return self.area() < second.area()