1.何为生成器:
函数带yeild关键字,并且函数被执行得到的结果就是生成器
2.生成器本质就是一个迭代器
生成器有__iter__和__next__方法
3.yeild表达式形式(协程函数):
x = yeild
当生成器调用send方法时,会有一个赋值操作并且程序会往下继续执行直到遇到下一个yeild程序挂起。期间的赋值操作会将值先给yeild然后yeild再赋值给x,要注意的一个问题是用send方法前先将yeild初始化,否则会报:
可以将初始化做成一个装饰器,然后后面的生成器函数可以直接用,不需要初始化yeild