一、生成器
可以通过for遍历的数据类型就是可迭代类型,可以next的为迭代器,迭代器都是可以迭代的。比如列表
生成器是在没有调用时是不会生成元素的。只有通过调用,比如for循环,或者next()就会生成一个新元素。
举例
c=(i*2 for i in range(10))
for i in c:
print(i)
这个就是一个生成器。
函数可以通过yield来变成生成器
def sal(max):
n=0
while n
yield n
n+=1
这样也是一个生成器
二、迭代器
可以通过next来取得当前元素,返回当前状态
def sport:
while True:
project=yield
print("start %s sport"%project)
c1=sport()
c2=sport()
迭代器可以通过send()来发射一个值给予yield,并返回下一个状态,
通过send可以达到并发的效果
三、json
json.dumps和json.loads序列化和反序列化
json只能用于比较简单的数据类型:列表,字典这些
复杂数据比如函数,就必须通过pickle来序列化
pickle.dumps和pickle.loads序列化和反序列化