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

### Tell us what’s happening:

Hi, can anyone help me with this step? I am very confused .

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

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

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

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

# User Editable Region

v1 = R2Vector(x=2, y=3)
v2 = R3Vector(x=2, y=2, z=3)
print(f'v1 = {R2Vector(x = 2, y = 3)}')
print(f'v2 = {R3Vector(x=2, y=2, z=3)}')

# User Editable Region

``````

User Agent is: `Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0`

### Challenge Information:

Learn Special Methods by Building a Vector Space - Step 26

Hello!

You are on the right path: Just replace the values with the variables they were assigned to.

Sorry, still don’t understand. Can you help explain more specifically?

If you write the above inside the curly brackets of the f-string, you create another object. You already have `v1`.
The same is true for `v2`