我试图在python中使用yield表达式打印数字:0,2,4 ....代码但我一直得到打印:<generator object some_f at 0x000000000252D240>
代码是:
fn= lambda n: 2*n
def Make_iterator(fn):
def some_f():
i=0
yield fn(i)
i+=1
return some_f
iterator = Make_iterator(fn)
for i in range(4):
print(iterator())
答案 0 :(得分:0)
我认为这更像是你在寻找的东西。
fn = lambda n: 2*n
def Make_iterator(fn):
def my_iter():
i=0
while i<10:
yield fn(i)
i+=1
return my_iter()
for i in Make_iterator():
print(i)
你不需要额外的函数包装器,你需要确保迭代你的迭代器,而不是只是多次调用它。