pythonジェネレータyield、メモリ節約


一、pythonはyieldを生成する理解に対してこの点を見ることをお勧めしますここに書くのはとても良くて、理解しやすいです
二、作用:低減プログラムの複雑さを合理的に利用する例:例えばrange方法の使用サイクルはメモリを占め、yieldでメモリの占有量を低減する
#encoding:utf-8
import sys


print "range      :{}".format(sys.getsizeof(range(1000)))

print "xrange      :{}".format(sys.getsizeof(xrange(1000)))       #xrange       yield  
# yield  range   
def test():
    def foo(num1):
        while num1<1000:
            num1=num1+1
            yield num1
    for n in foo(0):
        pass
test()
print "num          :{}".format(sys.getsizeof(100))

結果:
range      :8064
xrange      :32
num          :24