# Learn Special Methods by Building a Vector Space - Step 50

### Tell us what’s happening:

i’m confused on what it is im doing wrong someone please point it out the hints are just saying declare variable v4 and assign it the difference between v1 and v2 which ive obviously done

``````class R2Vector:
def __init__(self, *, x, y):
self.x = x
self.y = y

def norm(self):
return sum(val**2 for val in vars(self).values())**0.5

def __str__(self):
return str(tuple(getattr(self, i) for i in vars(self)))

def __repr__(self):
arg_list = [f'{key}={val}' for key, val in vars(self).items()]
args = ', '.join(arg_list)
return f'{self.__class__.__name__}({args})'

if type(self) != type(other):
return NotImplemented
kwargs = {i: getattr(self, i) + getattr(other, i) for i in vars(self)}
return self.__class__(**kwargs)

def __sub__(self, other):
if type(self) != type(other):
return NotImplemented
kwargs = {i: getattr(self, i) - getattr(other, i) for i in vars(self)}
return self.__class__(**kwargs)

class R3Vector(R2Vector):
def __init__(self, *, x, y, z):
super().__init__(x=x, y=y)
self.z = z

v1 = R2Vector(x=2, y=3)
v2 = R2Vector(x=0.5, y=1.25)
print(f'v1 = {v1}')
print(f'v2 = {v2}')
v3 = v1 + v2
print(f'v1 + v2 = {v3}')
v4 = v2 - v1
print(f'v2 - v1 = {v4}')

``````

User Agent is: `Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36`

### Challenge Information:

Learn Special Methods by Building a Vector Space - Step 50
https://www.freecodecamp.org/learn/scientific-computing-with-python/learn-special-methods-by-building-a-vector-space/step-50`Preformatted text`

ive done it but dont understand how

i dont understand why its v1-v2 thats a logic fail

Instructions ask you to assign it the difference between `v1` and `v2`, which is `v1 - v2`.
The difference between `v2` and `v1` would be `v2 - v1`.

The result of these two operation is different. `v1 - v2 = -1 * (v2 - v1)`

1 Like