我正在尝试为 Web 应用程序(通过 GAE)创建一个“迭代器”,该应用程序将一个“模板”字符串、两个整数(创建一个范围)和一个单词列表作为输入。用户将在他们想要迭代数字的字符串中插入一个“#”,并在他们想要迭代单词的字符串中插入一个“@”。
输入:
template string: "Person#Likes@"
starting integer: 1
ending integer: 3
list of words: "Apples, Bananas, Oranges"
输出:
Person1LikesApples
Person1LikesBananas
Person1LikesOranges
Person2LikesApples
Person2LikesBananas
Person2LikesOranges
Person3LikesApples
Person3LikesBananas
Person3LikesOranges
当用户单击标题为“下一步”或类似内容的提交按钮时,我希望输出显示在结果文本框中。踢球者是我希望输出仅在 Person1 第一次单击按钮时显示项目。然后,他们第二次单击它时,仅显示 Person2 的项目,依此类推。
我用生成器编写了一个简单的 Python 小程序,但我无法将它整合到我的 Google App Engine 应用程序中。
这是我的功能:
def g(f, text, lower, upper, list):
for num in range(int(lower),int(upper)+1):
yield f(text.replace('#', str(num)), list)
def f(text, list):
for i in list:
print text.replace('@', i)
和其他代码:
if text and lower and upper and words:
result = g(f, words, lower, upper, list)
self.render_iterator(result=next(result))
(^当我填写其他值时,此代码在我的结果文本框中返回“None”,但当我稍微摆弄一下时,它确实将其识别为生成器表达式)
还有另一种我想念的方法吗?我应该改用 GQL 和 Google 数据存储吗?如果您需要查看我的更多代码,请告诉我。
谢谢!