最近看代码看到python里面的yield关键字,和我以前接触的语言好像都没有来着,我就查了查它的含义,大概理解以下:python
>>> def createGenerator(): ... mylist = range(3) ... for i in mylist: ... yield i*i ... >>> mygenerator = createGenerator() # create a generator >>> print(mygenerator) # mygenerator is an object! <generator object createGenerator at 0xb7555c34> >>> for i in mygenerator: ... print(i) 0 1 4
>>> mygenerator = (x*x for x in range(3))
>>> for i in mygenerator: ... print(i) 0 1 4 >>> for i in mygenerator: ... print(i)
再运行一次for就不会打印出来东西了。