python中__eq__怎么用
时间: 2023-12-26 22:05:18 浏览: 150
`__eq__`是Python中的一个特殊方法,用于比较两个对象是否相等。在自定义类中,我们可以通过实现`__eq__`方法来定义两个对象相等的条件。下面是一个简单的例子:
```python
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
return self.x == other.x and self.y == other.y
p1 = Point(1, 2)
p2 = Point(1, 2)
print(p1 == p2) # 输出 True
```
在这个例子中,我们定义了一个`Point`类,包含`x`和`y`两个属性。我们通过实现`__eq__`方法来定义两个`Point`对象相等的条件,即当它们的`x`和`y`属性都相等时,它们相等。在`p1 == p2`这个表达式中,Python会自动调用`p1`的`__eq__`方法,并将`p2`作为参数传入,从而判断它们是否相等。
相关问题
python中__eq__()
在Python中,`__eq__()`是一个特殊的方法,用于比较两个对象是否相等。它是在自定义类中实现的,通过重写该方法可以定义对象相等的规则。`__eq__()`方法默认接受两个参数,`self`表示当前对象,`other`表示需要进行比较的其他对象。在`__eq__()`方法中,可以根据实际需求定义对象相等的条件,如果满足条件,返回`True`,否则返回`False`。
下面是一个示例代码,展示了如何使用`__eq__()`方法来判断两个对象是否相等:
```
class Item:
def __init__(self, name, weight):
self.name = name
self.weight = weight
def __eq__(self, other):
if type(other) == type(self) and other.name == self.name and other.weight == self.weight:
return True
else:
return False
cat_1 = Item('Cat', 5)
cat_2 = Item('Cat', 5)
print(cat_1.__eq__(cat_2)) # 输出:True
print(cat_1 == cat_2) # 输出:True
```
在上面的代码中,我们创建了一个名为`Item`的类,它有两个属性`name`和`weight`。通过重写`__eq__()`方法,我们定义了只有当两个对象的`name`和`weight`属性都相等时才认为它们是相等的。这样,在比较两个`Item`对象时,可以使用`==`运算符或调用`__eq__()`方法来判断它们是否相等。
python __eq__
`__eq__` 是 Python 中的一个特殊方法,用于定义对象之间的相等性。当两个对象使用 `==` 运算符进行比较时,Python 解释器会自动调用这个方法。
`__eq__` 方法应该返回一个布尔值,表示两个对象是否相等。通常情况下,我们会比较对象的属性是否相等,如下所示:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __eq__(self, other):
if isinstance(other, Person):
return self.name == other.name and self.age == other.age
return False
```
在上面的例子中,我们定义了一个 `Person` 类,重写了 `__eq__` 方法,当比较两个 `Person` 对象时,只有当它们的 `name` 和 `age` 属性都相等时,才认为它们是相等的。
阅读全文