Ich versuche, tuple
und list
als Objekttypen in einer __add__
-Methode in Python zu akzeptieren. Bitte beachten Sie den folgenden Code ein:Tupel und Listen in der isinstance-Funktion in Python 2.7 implementieren
class Point(object):
'''A point on a grid at location x, y'''
def __init__(self, x, y):
self.X = x
self.Y = y
def __str__(self):
return "X=" + str(self.X) + "Y=" + str(self.Y)
def __add__(self, other):
if not isinstance(other, (Point, list, tuple)):
raise TypeError("Must be of type Point, list, or tuple")
x = self.X + other.X
y = self.Y + other.Y
return Point(x, y)
p1 = Point(5, 10)
print p1 + [3.5, 6]
Der Fehler, den ich bekommen, wenn es in der Python-Interpreter läuft:
AttributeError: 'list' object has no attribute 'X'
ich einfach nicht unser herausfinden kann, warum dies nicht funktioniert. Das sind Hausaufgaben für einen College-Kurs und ich habe sehr wenig Erfahrung mit Python. Ich weiß, dass die isinstance
-Funktion in Python ein Tupel von Typobjekten akzeptieren kann, so dass ich nicht sicher bin, welches Element mir für tuple
und list
Objekte fehlt, die akzeptiert werden. Ich habe das Gefühl, dass das etwas sehr Einfaches ist, das ich einfach nicht wahrnehme.