我在UserList下创建了一个名为UList的新类,它覆盖了__add__
方法 - 它不允许将重复项添加到列表中。但是当我尝试运行它时,我没有得到预期的结果:
from collections import UserList
class UList(UserList):
def append(self,ap_item):
for ap in ap_item:
if ap in self:
raise ValueError(repr(ap) + " already exists in list")
else:
return UserList.append(self, ap_item)
def __add__(self,ad_item):
for ad in ad_item:
if ad in self:
raise ValueError(repr(ad) + " already exists in list")
else:
return UserList.__add__(self,ad_item)
def extend(self, ex_item):
for ex in ex_item:
if ex in self:
raise ValueError(repr(i) + " already exists in list")
else:
return UserList.extend(self,ex_item)
如何才能正确执行此方法?
答案 0 :(得分:1)
您的__add__
函数缺少return
语句。如此缺少的任何函数都会隐式返回None
。这就解释了为什么你的函数返回None。
试试这个:
return UserList.__add__(self,ad_item)