标签:基本 需要 self 大小 类型 比较 acl 基于 使用
一、int、string、list这些基本类型的大小比较都是基于如下方法实现:__lt__;__gt__;__le__;__ge__;__eq__;__nq__,同理,类要实现比较功能需要实现这些方法
二、使用装饰器functools.total_ordering可以简化上诉实现的方法
三、实例:
from functools import total_ordering
from abc import ABCMeta
@total_ordering
class Shape(metaclass=ABCMeta):
@classmethod
def area(self):
pass
def __lt__(self, obj):
return self.area() < obj.area()
def __eq__(self, obj):
return self.area() == obj.area()
class Rect(Shape):
def __init__(self, a, b):
self.length = a
self.width = b
def area(self):
return self.length * self.width
r1 = Rect(5, 3)
r2 = Rect(5, 3)
print(r1 != r2)
标签:基本 需要 self 大小 类型 比较 acl 基于 使用
原文地址:https://www.cnblogs.com/inflame/p/14850469.html