当调用以下函数时,我不明白发生了什么:
def doSmth(inFile):
print inFile
with open(inFile,'r') as trainSet:
for instLine in trainSet:
# do smth
yield instLine
为什么当删除了最后一行产时,存在一个错误,即文件不存在(它实际上不存在)。但是,当我有了这条线,就没有错误了。另一个问题是,为什么在第二种情况下,print inFile在第一种情况下没有效果。谢谢。
发布于 2013-06-07 22:37:32
因为您实际上并不是在迭代生成器:
代码中有类似于此的内容:
doSmth() # simply creates generator without advancing it
没有for x in doSmth()
https://stackoverflow.com/questions/16993938
复制相似问题