【发布时间】:2020-11-30 09:45:06
【问题描述】:
假设你有一个简单的类,比如下面的A。除了比较本身之外,比较方法几乎都是相同的。是否有一种捷径可以在一个方法中声明六种方法以支持所有比较,例如B?
我问主要是因为B 对我来说似乎更 Pythonic,我很惊讶我的搜索没有找到这样的路线。
class A:
def __init__(self, number: float, metadata: str):
self.number = number
self.metadata = metadata
def __lt__(self, other):
return self.number < other.number
def __le__(self, other):
return self.number <= other.number
def __gt__(self, other):
return self.number > other.number
def __ge__(self, other):
return self.number >= other.number
def __eq__(self, other):
return self.number == other.number
def __ne__(self, other):
return self.number != other.number
class B:
def __init__(self, number: float, metadata: str):
self.number = number
self.metadata = metadata
def __compare__(self, other, comparison):
return self.number.__compare__(other.number, comparison)
【问题讨论】:
标签: python