python - 'int' object has no attribute 'x' -
i'm trying make program add vectors using __add __
:
class vects: def __init__(self,x,y): self.x = x self.y = y def __add__(self, vect): total_x = self.x + vect.x total_y = self.y + vect.y return vects(total_x, total_y) plusv1 = vects.__add__(2,5) plusv2 = vects.__add__(1,7) totalplus = plusv1 + plusv2
the error produced follows:
line 12, in <module> plusv1 = vects.__add__(2,5) line 7, in __add__ total_x = self.x + vect.x attributeerror: 'int' object has no attribute 'x'
you don't use __add__
that! :-) __add__
implicitly invoked when +
used on instance of vects
class.
so, should first initialize 2 vector instances:
v1 = vects(2, 5) v2 = vects(1, 7)
and add them:
totalplus = v1 + v2
if add nice __str__
nice representation of new vector:
class vects: def __init__(self,x,y): self.x = x self.y = y def __add__(self, vect): total_x = self.x + vect.x total_y = self.y + vect.y return vects(total_x, total_y) def __str__(self): return "vector({}, {})".format(self.x, self.y)
you can view of totalplus
printing it:
print(totalplus) vector(3, 12)
Comments
Post a Comment