Ich muss herausfinden, ob ein bestimmtes benanntes Tupel in einer Liste von benannten Tupeln existiert (die benannten Tupel sind Punkte ex. A (2,3) in einem 'Polygon' Klasse). Wenn das angegebene Tupel nicht in der Liste vorhanden ist, fügen wir das Tupel an die Liste an. Wenn es existiert, wird eine benutzerdefinierte Ausnahme ausgelöst. Die Funktion funktioniert, wenn der angegebene Punkt in der Liste nicht existiert. Aber es gibt keine Ausnahme, wenn der Punkt existiert und einfach am Ende der Liste wieder hinzugefügt wird. Und hier ist, was ich habe, so weit: Klasse ExistingPointError (Exception): def init (self, Wert): self.value = 0Suche nach einem benannten Tupel in einer Liste von benannten Tupeln
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)
Sie sollten posten, wie "pt" aussieht, d. H. Wie Sie Ihr benanntes Tupel definiert haben. – khachik
Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [Minimales, vollständiges, überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) gilt hier. Insbesondere haben Sie keinen Code gepostet, der das Problem reproduziert. – Prune
und die for-Schleife in 'isThere' macht keinen Sinn. – khachik