我需要找出给定命名元组是否存在于命名元组列表中(命名元组是指例如'Polygon'中的A(2,3)类)。如果给定的元组不在列表中,我们将元组附加到列表中。如果它存在,则引发用户定义的异常。该功能在列表中不存在给定点时起作用。但是,如果这个观点确实存在,那么就不会出现异常,并且它会再次添加到列表的末尾。这里是我到目前为止有: 类ExistingPointError(例外): DEF 初始化(个体经营,价值): self.value = 0在命名元组列表中搜索命名元组
class Polygon(object):
counter = 0
def __init__(self):
Polygon.counter+=1
self.points = []
# and here's the function that I'm working with
def setter(self,pt):
def isThere(pt):
if pt in self.points: raise ExistingPointError()
print("Setting Point")
try:
isThere(pt)
self.points.append(pt)
except ExistingPointError as E:
print("Point exists! value: ", E)
print(self.points)
P = Polygon()
point=collections.namedtuple('PointName','Name x y')
A = point(Name = 'A', x = 5, y = 0)
B = point(Name = 'B',x = 10,y = 5)
C = point(Name = 'C',x=5,y=10)
D = point(Name = 'D', x=-2,y=8)
lst = [A,B,C,D]
P.createPolygon(lst)
P.setter(D)
你应该发布'pt'看起来像你如何定义你的命名元组。 – khachik
欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [最小,完整,可验证的示例](http://stackoverflow.com/help/mcve)适用于此处。具体而言,您没有发布重现问题的代码。 – Prune
,并且'isThere'中的循环没有任何意义。 – khachik