Прямо сейчас в моей карточной игре используется метод prepvocab()
, где я
- определить термины и переводы на неделю в терминах словаря
- добавить описание условий этой недели
- свести их в список словарей, где пользователь выбирает свои "недели" для изучения
Каждый раз, когда я добавляю новые термины и переводы на новую неделю, я застреваю, добавляя еще один элемент в список доступных словарей. Я определенно вижу это как нехорошую вещь.
class Vocab(object):
def __init__(self):
vocab = {}
self.new_vocab = vocab
self.prepvocab()
def prepvocab(self):
week01 = {"term":"translation"} #and many more...
week01d = "Simple Latvian words"
week02 = {"term":"translation"}
week02d = "Simple Latvian colors"
week03 = {"I need to add this":"to self.selvocab below"}
week03d = "Body parts"
self.selvocab = [week01, week02] #, week03, weekn]
self.descs = [week01d, week02d] #, week03, weekn]
Vocab.selvocab(self)
def selvocab(self):
"""I like this because as long as I maintain self.selvocab,
the for loop cycles through the options just fine"""
for x in range(self.selvocab):
YN = input("Would you like to add week " \
+ repr(x + 1) + " vocab? (y or n) \n" \
"Description: " + self.descs[x] + " ").lower()
if YN in "yes":
self.new_vocab.update(self.selvocab[x])
self.makevocab()
Я определенно вижу, что это будет болью с 20+, да без вопросов. В данный момент я читаю проклятия и думал о том, чтобы напечатать все описания сразу и позволить пользователю выбрать все, что он хотел бы изучить для раунда.
Как мне сохранить эту часть моего кода лучше? У кого-нибудь есть радикальный пересмотр, который не такой ... процедурный?