<p>现在我的抽认卡游戏使用的是<code>prepvocab()</code>方法</p>
<ul>
<li>把一周的术语和翻译定义为一本字典</li>
<li>添加对该周条款的描述</li>
<li>把它们放进一个字典列表,用户在其中选择“周”来学习</li>
</ul>
<p>每次我添加一个新的一周的术语和翻译,我都会在可用词典列表中添加另一个元素。我可以肯定这不是一件好事。你知道吗</p>
<pre><code>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()
</code></pre>
<p>我可以肯定地看到,这将是一个痛苦的20+是不是的问题。我现在正在读咒语,并且正在考虑一次打印所有的描述,让用户选择他们想学习的所有内容。你知道吗</p>
<p>如何更好地维护代码的这一部分?有没有人有一个根本性的改革不是那么…程序性的?你知道吗</p>
<p><a href="http://blog.cameronleger.com/2011/05/31/python-example-pickling-things-into-mysql-databases/" rel="nofollow">Pickling objects into a database</a>意味着创建一个界面来修改前端的每周课程需要一些努力,但这是值得的。你知道吗</p>