Не могу понять почему не работает магический метод
Не могу понять почему не работает магический метод mul.
Должен выводить новый список умноженный на other. Выводит пустой список.
class SuperList(list):
def __init__(self):
self.value = []
def __mul__(self, other):
return list(map(lambda x: x * other, self.value))
a = SuperList()
a.append(87)
a.append(45)
a.append(54)
print(a)
print(a*10)
Ответы (1 шт):
Автор решения: n1tr0xs
→ Ссылка
Это происходит потому что вызов метода append не меняет значение self.value.
Такой класс будет работать как вы и ожидаете:
class SuperList(list):
def __init__(self):
pass # self.value нам не нужен
def __mul__(self, other):
return list(map(lambda x: x * other, self)) # self.value заменил на self