我对 python 有点陌生,正在查看 Django 源代码。我遇到了utils.py
,并且对这个迭代器方法的作用有些困惑:
def __iter__(self):
return iter(self.file)
这将用于什么?
遍历一个文件会产生它的所有行,例如:
for line in open("foo.txt"):
print line
结果是:
line1
line2
line3
如果foo.txt
是:
line1
line2
line3
(额外的换行符,因为line
包括文件的换行符)。
因此,迭代一个类的实例,该实例的源您发布了一个片段,结果是迭代该实例的file
行。
__iter__
当某个对象作为参数传递给iter()
. 也就是说,如果你调用iter(a)
,在幕后,python 最终会a.__iter__()
默认调用。
For this particular implementation, it will then return the iterator for the file
member, whatever that may be.