Tell us what’s happening:
can anyone please help me out in this step
I checked the forum with the same problem I’m facing but I couldn’t understand that
Your code so far
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})'
def __add__(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)
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)
# User Editable Region
def __mul__(self, other):
if type(other) == type(int, float):
kwargs = {i: getattr(self, i)* getattr(other, i) for i in vars(self)}
return self.__class__(**kwargs)
# User Editable Region
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 = v1 - v2
print(f'v1 - v2 = {v4}')
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0
Challenge Information:
Learn Special Methods by Building a Vector Space - Step 52
Teller
2
Hi @amirmavia9575
Add this code as the last line in the editor to help you debug.
print(type(3) == type(int, float))
Happy coding
after pasting it to the last line of my code still error is occurring instead of passing the test
This is to help you debug, it is not the solution. You will not be given the solution on the forum.
What output does that print statement give you?
Does it give you a clue to find the problem ?
the output is giving me a type error
Tell us what’s happening:
can anyone please help me out in this i had asked this already and i had done the corrections too but still the code isn’t running
Your code so far
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})'
def __add__(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)
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)
# User Editable Region
def __mul__(self, other):
if isinstance(other, (int, float)):
kwargs = {i: getattr(self, i) * other for i in vars(self)}
return self.__class__(**kwargs)
return NotImplemented
# User Editable Region
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 = v1 - v2
print(f'v1 - v2 = {v4}')
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0
Challenge Information:
Learn Special Methods by Building a Vector Space - Step 52
Yes, and… ? Read the error.
TypeError: type() takes 1 or 3 arguments
What does his tell you about your code?
if type(other) == type(int, float):
i got it what actually it’s trying to tell me so i used this
def _mul_(self, other):
if isinstance(other, (int, float)):
kwargs = {i: getattr(self, i) * other for i in vars(self)}
return self.__class__(**kwargs)
return NotImplemented
but still the code isn’t running
ILM
9
you are not asked to return this in this step
ILM
10
you also can’t use isinstance in this situation
Ok I got it. Thanks a lot for helping.