-3

我在 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)

我怎样才能让这个方法正确执行?

4

1 回答 1

1

您的__add__函数缺少return声明。任何如此缺乏的函数都会隐式返回None。这就解释了为什么你的函数返回 None。

尝试这个:

return UserList.__add__(self,ad_item)
于 2013-09-13T18:55:38.010 回答