Welcome to the Treehouse Community
Looking to learn something new?
Now wrap it up by adding in __imul__, which does in-place multiplication. Be sure to update self.value!
I got to the second part of the challenge and even read the other posts about this question.. but I wasn't able to pass the challenge. I didn't understand these instructions.. nor the advice that the mods are recommending:
"You are very close. Notice how in the in-place method iadd, the value of self.value is updated before the return. This is what makes it work in place: the object value changes and is not just used to return a value. Add assignments to self.value and it should pass. Post back if you have more questions! Good luck!!"
^^I have no idea what that means... can someone help?
class NumString: def __init__(self, value): self.value = str(value) def __str__(self): return self.value def __int__(self): return int(self.value) def __float__(self): return float(self.value) def __add__(self, other): if '.' in self.value: return float(self) + other return int(self) + other def __radd__(self, other): return self + other def __iadd__(self, other): self.value = self + other return self.value def __mul__(self, other): if '.' in self.value: return float(self) * other return int(self) * other def __rmul__(self, other): return self * other def __imul__(self, other): self.other = self * other return self.other
Similar to iadd You'll want to update and return self.value
def __imul__(self, other): self.value = self * other return self.value
def imul(self, other): self.value = self * other return self.value