我有两种循环数据的方法,一种使用 for loop 另一种使用 yield ,我想知道有什么区别。
For Loop(获取100000数据)
data='select 100000 data from database'
for d in date:
do something with d
yield(每次获取1000个数据,然后查询数据库100次)
def func():
data='select 1000 data from database'
while date.count>0:
yield data
data = func()
for d in data:
do something with d
答案 0 :(得分:0)
从功能上讲,它们是相同的。
主要区别在于,在第二种情况下,在不重复SQL语句的情况下,很容易有几个不同的“做某事”块。在第一种情况下,“做某事”是硬编码的。