yield语句
1.包含yield的函数被称作生成器。
2.当函数被调用时,返回一个支持迭代器接口的生成器对象。
3.不像一般的函数会生成值后退出,生成器函数在生成值后会自动挂起并暂停他们的执行和状态,它的本地变量将保存状态信息,这些信息在函数恢复时将再度有效。
4.不像return返回一个值,而是产生多个值。每次产生一个值(yield)函数就会停止,等待被激活,激活后从停止点开始执行。
例如:
#分行
def lines(file):
for line in file: yield line #行生成器
yield '\n'
#分段
def blocks(file):
block = []
for line in lines(file): #for循环实现迭代
if line.strip():
block.append(line)
elif block:
yield ''.join(block).strip() #join为split逆方法,
block = []
*args
作用:当函数的参数不确定时,可以使用*args
__init__(self)方法
初始化方法,不同与java中的构造方法,_init_是对实例化后的对象初始化。