Переменная в классе обнуляется после выполнения цикла

Переменная в классе обнуляется после выполнения цикла. Хотелось, чтобы переменная so_far сохраняла значение с каждым новым запуском цикла. Заранее спасибо!

word = 'qwerty'
class Test():
    def __init__(self):
        self.word = word
        self.so_far = '_' *len(word)
    def update(self):
        new = ''
        if letter in self.word:
            for i in range(len(self.word)):
                if letter == self.word[i]:
                    new += letter
                else:
                    new += self.so_far[i]
            self.so_far = new
            print(self.so_far)
            
           
while True:
    letter = input()
    X = Test()        
    X.update()

Ответы (1 шт):

Автор решения: Сергей Ш
class Test():
    def __init__(self, word):
        self.word = word
        self.so_far = '_' * len(word)

    def __str__(self):
        return self.so_far

    def update(self):
        new = ''
        if letter in self.word:
            for i, z in enumerate(self.word):
                if letter == self.word[i]:  # if letter == z
                    new += letter
                else:
                    new += self.so_far[i]
            self.so_far = new

    def update1(self, letter):
        v = [letter if letter == c else z for z, c in zip(self.so_far, self.word)]
        self.so_far = ''.join(v)


X = Test('qwerty')
while True:
    letter = input()
    X.update1(letter)
    print(X)

q
q_____
w
qw____
→ Ссылка