Learn Special Methods by Building a Vector Space - Step 22

Tell us what’s happening:

I have replaced the self.dict with vars(self) but my code still doesn’t pass

Your code so far


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

# User Editable Region

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

# User Editable Region

    def __str__(self):
        return f'{self.x, self.y}'

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 = R3Vector(x=2, y=2, z=3)
print(v1.norm())
print(v2.norm())

Your browser information:

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

Challenge Information:

Learn Special Methods by Building a Vector Space - Step 22

1 Like

you still need to use values()

2 Likes

Yes. Use
code removed by moderator

hey @Ben-Ogega

It is great that you solved the challenge, but instead of posting your full working solution, it is best to stay focused on answering the original poster’s question(s) and help guide them with hints and suggestions to solve their own issues with the challenge.

We are trying to cut back on the number of spoiler solutions found on the forum and instead focus on helping other campers with their questions and definitely not posting full working solutions.

1 Like