生成器函数:函数体内包含有yield关键字,该函数执行的结果是生成器
生成器就是迭代器
yield的功能:
1 与return类似,都可以返回值,但不一样的地方在于yield返回多次值,而return只能返回一次值
2 为函数封装好了__iter__和__next__方法,把函数 的执行结果做成了迭代器
3 遵循迭代器的取值方式obj.__next__(),触发的函数的执行,函数暂停与再继续的状态都是由yield保存
#注意__iter__()和__next__()后的()
三元表达式
x if x>y else y
列表解析
[i for i in l if i>50]
生成器表达式
(i for i in l if i>50)