【发布时间】:2019-02-19 05:39:40
【问题描述】:
我正在尝试覆盖 __add__ 方法,以便不会添加重复项。我的代码出了什么问题?
class Ulist(UserList):
def __init__(self,value=[]):
UserList.__init__(self)
self.value = value
def __add__(self,addvalue):
for x in addvalue:
if x in self.value:
print("It already exists")
else:
return self.value.__add__(addvalue)
如果是Ulist=[1,2,3],而我是Ulist.__add__([3]),我期待“它已经存在”的消息。但我得到了[1,2,3,3]。
【问题讨论】:
-
如果你真的将
Ulist初始化为[1, 2, 3],那么它只是一个列表,你的命名空间中不再有同名的类。 -
知道了!谢谢!