例1:
a=(x for x in range(1,10))#生成一个对象生成器,只能被使用一次使用完后会返回一个空值
print(a)
for i in a:
print(i,end='')
print(tuple(a))#对象生成器使用完后就返回一个空值
print(a)
结果是:<generator object <genexpr> at 0x0000028A5BFC0040>
123456789()
<generator object <genexpr> at 0x0000028A5BFC0040>
第一个print打印出对象生成器的值与第三个print是一样的,为什么结果的第二行后面是返回一个空值?
例2:
my_list=[11,12,13]
my_tuple=(21,22,23)
a1=zip(my_list,my_tuple)
print(a1)
for i in a1:
print(i,end='')
print(tuple(a1))
print(a1)#zip方法返回的还是一个对象生成器
结果是:<zip object at 0x000001F90CE78B80>
(11, 21)(12, 22)(13, 23)()
<zip object at 0x000001F90CE78B80>
与例1是一样的问题这里再写一个例子而已!
>第一个print打印出对象生成器的值与第三个print是一样的,为什么结果的第二行后面是返回一个空值?
生成器对象是一个变量,也是一个object,这个object本身的地址没变,但是这个object内部的状态已经发生变化。