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