+ 1

Problem in Magic Methods(Python)

class UnderstandingMagicMethod: def __init__(self, other): self.other=other def __mul__(self,another): x="*"*len(another.other) return "\n".join([self.other,x,another.other]) spam = UnderstandingMagicMethod("Hello") eggs = UnderstandingMagicMethod("World") print(spam*eggs) All I expected is: Hello ***** World But I get: TypeError: unsupported operand type(s) for *: 'UnderstandingMagicMethod' and 'UnderstandingMagicMethod' So, could please anyone clarify the problem with my code???

4th Dec 2016, 2:53 PM
Abdullah Omar Nasseef
Abdullah Omar Nasseef - avatar
1 Answer
+ 3
Maybe an indentation problem with __mul__. This works: ---------------------- class UnderstandingMagicMethod: def __init__(self, other): self.other=other def __mul__(self,another): x="*"*len(another.other) return "\n".join([self.other,x,another.other]) spam = UnderstandingMagicMethod("Hello") eggs = UnderstandingMagicMethod("World") print(spam*eggs)
4th Dec 2016, 6:26 PM
Álvaro