명명 된 튜플이 이름이있는 튜플 목록에 있는지 확인해야합니다 (명명 된 튜플은 'Polygon'의 점 A (2,3) 수업). 주어진 튜플이리스트에 존재하지 않으면 튜플을리스트에 추가합니다. 존재하는 경우 사용자 정의 예외가 발생합니다. 이 함수는 주어진 점이 목록에 없을 때 작동합니다. 그러나 포인트가 존재하고 단순히리스트의 끝에 추가되면 예외는 발생하지 않습니다. 클래스 ExistingPointError (예외) : 데프 초기화 (자기, 값) : 그리고 여기 내가 지금까지 가지고 무엇 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