好的,所以我给了两个驱动程序文件,我必须创建一个类,这样驱动程序文件才能工作..以下是说明:
您的集合类必须命名为
Set
。 set类的每个对象都应该包含该类的所有元素的列表(实例数据)。此列表应命名为members
(在类中,您必须使用名为self.members
的python列表 - 不要使用PythonSet
类,自己创建)。对于此分配,您必须包括以下方法:
__init__()
构造函数将是一个不带任何参数的默认构造函数。它将使用空列表初始化列表(实例数据)。add_element(integer)
此方法将向集合中添加一个整数。您可以假设只传递一个整数。无需验证参数是否为此赋值的整数。remove_element(integer)
此方法将删除从集合传递给它的值。remove_all()
此方法从列表中删除所有值,使其为空。has_element(x)
此方法采用整数,如果它是调用对象的成员,则返回True
。否则返回False
。__repr__()
此方法允许使用python的Set
函数通过返回字符串来打印print()
。当有n个元素时,应使用常规集合表示法打印该集合:{element1,element2,... element}。如果集合为空,则应打印{}
__str__()
此方法允许Set与python的str()
函数一起使用。它返回一个与__repr__()
方法返回的字符串相同的字符串。__add__
此方法重载+
运算符以为我们的Set类提供联合功能。此方法返回一个新的Set
,其中包含要添加的两个集的所有成员。intersect(x)
此方法返回一个Set
对象,其中包含调用Set
和Set
x
中存在的元素(正在传递的元素)has_subset(x)
此方法与上周的is_element()
类似,但不相同。参数应该是另一个Set
,而不是传递整数。如果传递的True
是调用Set
的子集,则返回Set
。否则返回False
。第1部分:
使用默认构造函数(不传递任何参数),
addElement
,removeElement
和removeAll
函数编写类。
我很困惑,我应该如何设置它!如果我可以得到第一部分的帮助,我想我可以做其他三个部分。这是我到目前为止所拥有的......但我知道它完全被搞砸了! “定型”的事情真的搞砸了我。我不知道如何添加或删除任何内容。
class Set:
def __init__(self):
self.members = []
set = {}
def add_element(self):
return self.add()
def remove_element(self):
return self.remove()
def get_remove_all(self):
self.remove_all()
答案 0 :(得分:0)
我不想给你一个完整的问题解决方案,因为这是一项我认为应该由你自己解决的任务......
作业要求您创建一个类,而不是函数。所以这就是你如何开始:
class Set(object):
def __init__(self):
self.members = []
def add_element(self, some_integer):
if not some_integer in self.members:
self.members.append(some_integer)
def get_remove_all(self):
self.members = []
...
答案 1 :(得分:0)
我故意实施了错误的解决方案,但是你应该向老师提供这个,这是一个更好的方式来做这个荒谬的任务。我的意思是,你的老师甚至可以对这些方法的命名保持一致。
class Set(object):
def __init__(self):
self.members = {}
def addElement(self, member):
self.members[member] = None
def removeElement(self, member):
if member in self.members:
del self.members[member]
else:
raise ValueError('Item not in the set.')
def removeAll(self):
self.members = {}
答案 2 :(得分:0)
此分配的目的是将列表操作应用于问题。没有关系,Set类有点傻......它是关于用列表练习的。您可以对列表执行的一些操作包括x in mylist
,del mylist[x]
,mylist.append(x)
和[x for x in mylist if x in otherlist]
。所以,开始将它们应用于Set类:
class Set(object): # python 2.x, in 3.x you can just say class Set:
def __init__(self):
self.member = []
def add_element(self, integer):
if integer not in self.member:
self.member.append(integer)
...