名前付きタプルのリストに名前付きタプルが存在するかどうかを調べる必要があります(名前付きタプルは「ポリゴン」のポイントA(2,3)クラス)。指定されたタプルがリストに存在しない場合は、そのタプルをリストに追加します。それが存在する場合、ユーザー定義の例外が発生します。この関数は、指定された点がリストに存在しない場合に機能します。しかし、ポイントが存在し、それが単にリストの最後に追加された場合に例外は発生しません。そして、ここで私がこれまで持っているものです。 クラスExistingPointError(例外): DEF のinit(自己、値):この程度 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'のforループは意味をなさない。 – khachik