Не могу понять почему реализовывается код по принципу паттерна "Монотонность"
Не могу понять, почему в аттрибут класса values я получаю аргументы сразу с 3 экземпляров.
class Vector:
values = []
def __init__ (self, *args):
self.args = args
for i in self.args:
self.values.append(i)
def __str__ (self):
if len(self.values) > 0:
return str(self.values)
else:
return f"Vector is empty"
v1 = Vector (1, 11, 111)
v2 = Vector (2, 22, 222)
v3 = Vector (3, 33, 333, 3333)
print (v1)
В консоли получаем:
[1, 11, 111, 2, 22, 222, 3, 33, 333, 3333]
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
потому что вы объявляете список values для всего класса, а не для экземпляра. попробуйте так:
class Vector:
# values = []
def __init__ (self, *args):
self.args = args
self.values = []
for i in self.args:
self.values.append(i)
def __str__ (self):
if len(self.values) > 0:
return str(self.values)
else:
return f"Vector is empty"
v1 = Vector (1, 11, 111)
v2 = Vector (2, 22, 222)
v3 = Vector (3, 33, 333, 3333)
print(v1)
[1, 11, 111]