fi = open("a.txt") for i in fi 其实等同于 for i in fi.readlines() fi是fi.readlines()的简写形式?
fi
并不是 fi.readlines()
的简写形式。fi
是一个文件句柄(file object),它是一个可迭代对象。for i in fi: ...
for i in fi.readlines(): ...
for
语句对任意对象 x
做:it = iter(x) # 拿迭代器 while True: try: item = next(it) # 一次次要下一个元素 except StopIteration: break ... # 用户代码块
fi
本身不是迭代器,但它实现了 可迭代协议:>>> iter(fi) is fi # True