Python 通过调用Pygame的两个函数实时更新文本

Python 通过调用Pygame的两个函数实时更新文本,python,pygame,Python,Pygame,我有一个程序,可以从用户那里获取输入,并使用Population()函数显示输入的多种变体。store\u fit功能将这些不同的变体添加到列表中,然后删除它们,以便列表一次只填充一个变体 我希望能够从列表中获取变体,并使用它更新我的文本。但是,我的程序仅在填充功能完成后更新文本。如何运行Population函数并同时更新文本 代码: 我建议将Population设置为生成器函数。见: def填充(文本,c): 对于范围(c)中的i: #计算变异 # [...] 产量变异 创建迭代器并用于检索

我有一个程序,可以从用户那里获取输入,并使用
Population()
函数显示输入的多种变体。
store\u fit
功能将这些不同的变体添加到列表中,然后删除它们,以便列表一次只填充一个变体

我希望能够从列表中获取变体,并使用它更新我的文本。但是,我的程序仅在
填充
功能完成后更新文本。如何运行
Population
函数并同时更新文本

代码:


我建议将
Population
设置为生成器函数。见:

def填充(文本,c):
对于范围(c)中的i:
#计算变异
# [...]
产量变异
创建迭代器并用于检索循环中的下一个变体,以便可以打印每个变体:

populate\u iter=populate(文本,1000)
最终变更=无
虽然没有这样做:
下一个变量=下一个(填充iter,无)
如果下一个变更:
最终变更=下一个变更
#打印电流变化
# [...]
其他:
完成=正确
根据注释进行编辑:


为了使我的问题简单,我没有提到人口是一个类[…]

当然,
填充也可以是一个类。我认为在这种情况下,您必须实现该方法。e、 g:

类填充:
定义初始化(self,text,c):
self.text=文本
self.c=c
定义(自我):
对于范围内的i(self.c):
#计算变异
# [...]
产量变异
通过创建迭代器。e、 g:

populate_iter=iter(populate(文本,1000))
最终变更=无
虽然没有这样做:
下一个变量=下一个(填充iter,无)
如果下一个变更:
最终变更=下一个变更
#打印电流变化
# [...]
其他:
完成=正确

这是正确的方法。我在回答这个问题时使用了类似的方法:为了使我的问题简单,我没有提到
Population
,它是一个类,它的
\uuu init\uu
函数是调用其他函数的。当我尝试在
\uuuu init\uuuuu
内部屈服时,我被告知它不应该返回生成器。这有什么办法吗?
fit = []
...

def store_fit(fittest): # fittest is each variation from Population
    clear.fit()
    fit.append(fittest)
...

pg.init()
...
done = False

while not done:
...
    if event.key == pg.K_RETURN:
        print(text)
        target = text
        Population(1000) #1000 variations
        store_fit(value)
        # I want this to run at the same time as Population
        fittest = fit[0]
...
top_sentence = font.render(("test: " + fittest), 1, pg.Color('lightskyblue3'))
screen.blit(top_sentence, (400, 400))