一、生成器

可以通过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<max:
        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序列化和反序列化

posted on 2017-10-25 10:06  立志成为一个好的码农  阅读(204)  评论(0)    收藏  举报