我知道如何yield工作。我知道排列,认为只是数学上的简单。
yield
但是什么yield才是真正的力量?我什么时候应该使用它?一个简单而好的例子更好。
yield 当您有一个返回序列的函数并且要遍历该序列,但是您不需要一次将所有值都存储在内存中时,最好使用此函数。
例如,我有一个python脚本,可解析一大堆CSV文件,并且我想返回每一行以在另一个函数中进行处理。我不想一次将所有兆字节的数据存储在内存中,因此我将yield每行都存储在python数据结构中。因此,从文件中获取行的功能可能类似于:
def get_lines(files): for f in files: for line in f: #preprocess line yield line
然后,我可以使用与列表相同的语法来访问此函数的输出:
for line in get_lines(files): #process line
但我节省了大量的内存使用量。