Почему список слов не добавляет новые значения, а заменят старые новыми
class TextHandler():
shortest_words = []
longest_words = []
def __init__(self, text = ""):
self.text = text.split()
def add_words(self, text):
self.text.append(text)
self.text = text.split()
def get_shortest_words(self):
min_len = 99999
for i in range (len(self.text)):
if min_len > len(self.text[i]):
min_len = len(self.text[i])
for i in range (len(self.text)):
if len(self.text[i]) == min_len:
self.shortest_words.append(self.text[i])
return self.shortest_words
Подаю на input
такие значения:
texthandler = TextHandler()
texthandler.add_words('The world will hold my trial for your sins')
texthandler.add_words('Never meant to see the sky never meant to live')
print(texthandler.get_shortest_words())
из первого add_words
он берет my
и добавляет его в shortest_words
, но при втором вызове, он стирает этот my
и добавляет только to
и to
из второго инпута, почему стирается my
из первого инпута и как его сохранить?
P.S. Только начал изучать ООП, возможно ошибка глупая, но я в упор не вижу проблемы, не судите строго
Ответы (1 шт):
Автор решения: facecaat
→ Ссылка
def add_words(self, text):
self.text.extend(text.split())
решило проблему Метод extend добавляет элементы в конец существующего списка self.text, не перезаписывая его.