pythonジェネレータyield、メモリ節約
3389 ワード
一、pythonはyieldを生成する理解に対してこの点を見ることをお勧めしますここに書くのはとても良くて、理解しやすいです
二、作用:低減プログラムの複雑さを合理的に利用する例:例えばrange方法の使用サイクルはメモリを占め、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