发电机的尺寸由什么决定?

问题描述 投票:0回答:1
import sys

num_gen = (num for num in range(1))
print(sys.getsizeof(num_gen))
num_gen = (num for num in range(100))
print(sys.getsizeof(num_gen))

num_gen = (num+1 for num in range(100))
print(sys.getsizeof(num_gen))
num_gen = (num+1+1 for num in range(100))
print(sys.getsizeof(num_gen))
num_gen = (num+num for num in range(100))
print(sys.getsizeof(num_gen))
num_gen = (num+num+1 for num in range(100))
print(sys.getsizeof(num_gen))

输出

200
200
208
208
208
208

为什么下面的 4 个生成器多使用 8 个字节?

python generator cpython
1个回答
0
投票

生成器对象的“大小”不是它将生成的元素(如列表或某种其他类型的序列)的函数,而是它执行的代码的函数,好吧,生成元素。

© www.soinside.com 2019 - 2024. All rights reserved.