我创建了一个名为
但是以下代码无法正常工作。
point
的类,如下所示:class point:
def __init__(self):
self.x = 0
self.y = 0
并创建一个 point
实例列表:
p1 = point()
p1.x = 1
p1.y = 1
p2 = point()
p2.x = 2
p2.y = 2
p_list = []
p_list.append(p1)
p_list.append(p2)
现在我想从列表中删除 x = 1
和 y = 1
的实例,我该怎么做?
我尝试为类 point
添加一个 __cmp__
方法,如下所示:
class point:
def __init__(self):
self.x = 0
self.y = 0
def __cmp__(self, p):
return self.x==p.x and self.y==p.y
但是以下代码无法正常工作。
r = point()
r.x = 1
r.y = 1
if r in p_list:
print('correct')
else:
print('wrong') # it will go here
p_list.remove(r) # it reports 'ValueError: list.remove(x): x not in list'
r
与您尝试删除的列表中的项目不是_完全相同_有关。 - Aaron Christiansen__cmp__
定义看起来不对。它应该返回一个整数,而不是布尔值。 - Kevindef __cmp__(self, p): if self.x==p.x: return self.y-p.y else: return self.x-p.x
- Deng Haijun