Python-Can';不要超负荷工作

Python-Can';不要超负荷工作,python,overloading,Python,Overloading,好了,我已经做了几天了,仍然不能让这个超负荷工作 Error: setA: {-10,-8,3,5,10,17,20} intSet.len(setA): TypeError: __len__() takes exactly 2 arguments (1 given) 代码: class intSet(对象): “”“intSet是一组整数 该值由整数列表self.vals表示。 集合中的每个int在self.vals中正好出现一次。”“” 定义初始化(自): “”“创

好了,我已经做了几天了,仍然不能让这个超负荷工作

Error:
    setA: {-10,-8,3,5,10,17,20}
    intSet.len(setA):
    TypeError: __len__() takes exactly 2 arguments (1 given)
代码:

class intSet(对象):
“”“intSet是一组整数
该值由整数列表self.vals表示。
集合中的每个int在self.vals中正好出现一次。”“”
定义初始化(自):
“”“创建一组空整数”“”
self.vals=[]
def插件(自身,e):
“”“假定e是整数,并将e插入self”“”
如果self.vals中没有e:
self.vals.append(e)

>>>>>>为简洁起见遗漏了更多的方法,
\u len\u\u
魔术方法不需要额外的参数。你的代码应该是

class IntSet(object):
"""An intSet is a set of integers
The value is represented by a list of ints, self.vals.
Each int in the set occurs in self.vals exactly once."""

def __init__(self):
    """Create an empty set of integers"""
    self.vals = []

>>>>>> more methods left out for brevity <<<<<<<<<<

def __len__(self):
    """Returns the number of elements in this set"""
    return len(self.vals)

我还应该提到,在MacBookPro上,它似乎在canopy/Python2.7下工作,但在基于MIT edX网络的分级机上不工作。我不知道分级机使用的是什么版本。
class IntSet(object):
"""An intSet is a set of integers
The value is represented by a list of ints, self.vals.
Each int in the set occurs in self.vals exactly once."""

def __init__(self):
    """Create an empty set of integers"""
    self.vals = []

>>>>>> more methods left out for brevity <<<<<<<<<<

def __len__(self):
    """Returns the number of elements in this set"""
    return len(self.vals)
myset = IntSet()
print 'My set contains ', len(myset)
myset.insert(9)
myset.insert(10)
print 'My set contains ', len(myset)
myset.insert(9)
print 'My set contains ', len(myset)
class intSet(object):
    def __init__(self):
        self.vals = []

    def insert(self, e):
        if not e in self.vals:
            self.vals.append(e)

    def __len__(self):
        return len(self.vals)

s = intSet()

s.insert(1)
s.insert(2)
s.insert(3)
s.insert(2)

print(len(s))
# 3