print c1<=r1 为什么也可以正确执行
来源:7-5 如何让类支持比较操作
慕少0241385
2017-10-28
from functools import total_ordering
@total_ordering
class Rectangle(object):
def __init__(self,w,h):
self.w = w
self.h = h
def area(self):
return self.w * self.h
def __lt__(self, other):
print('in lt')
return self.area() < other.area()
def __eq__(self, other):
print('in eq')
return self.area() == other.area()
class Circle(object):
def __init__(self,r):
self.r = r
def area(self):
return self.r**2*3.14
r1 = Rectangle(3,4)
r2 = Rectangle(5,5)
c1 = Circle(3)
print(c1<=r1)c1<r1也可得出
in lt False
在python3中这有什么区别么?
写回答
1回答
-
程序员硕
2017-10-29
Rectangle定义了__lt__和__eq__, 自动推测出大于。 并且俩个类都有area接口。
00
相似问题