例如一个类 Point
class Point:
def __init__():
self.x
self.y
和一个 tuple , 例如( 2 ,3 )
Point 是否可以实现和这个 tuple 直接比较相等,Point(2,3) == (2,3)? 如果可以是实现哪个方法,谢谢
1
with 2023-06-08 19:24:06 +08:00 1
Point 类中实现 eq 方法就行
def __eq__(self, other): if isinstance(other, tuple): return (self.x, self.y) == other elif isinstance(other, Point): return (self.x, self.y) == (other.x, other.y) else: return False |
2
UN2758 2023-06-08 19:25:59 +08:00
==调用的是__eq__ 方式,自己实现就可以比较了
|
3
MiketsuSmasher 2023-06-09 13:57:06 +08:00 via Android
在你的类里实现一下 __eq__ 方法,定义一下和 tuple 比较时的行为,这就够了。实例的这个方法会在做相等比较 == 时被调用。
|
4
lanhuermao 2023-06-14 17:55:35 +08:00
可以的,楼上几位已经说的很清楚了,Python 中的等于比较本质上是对象的 `__eq__` 方法在运算。
类似的还有: __ne__: 不等于 __gt__: 大于 __ge__: 大于等于 __lt__: 小于 __le__: 小于等于 |