2

我对 python 有点陌生,正在查看 Django 源代码。我遇到了utils.py,并且对这个迭代器方法的作用有些困惑:

def __iter__(self):
        return iter(self.file)

这将用于什么?

4

2 回答 2

4

遍历一个文件会产生它的所有行,例如:

for line in open("foo.txt"):
    print line

结果是:

line1

line2

line3

如果foo.txt是:

line1
line2
line3

(额外的换行符,因为line包括文件的换行符)。

因此,迭代一个类的实例,该实例的源您发布了一个片段,结果是迭代该实例的file行。

于 2012-05-16T19:01:08.317 回答
2

__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.

于 2012-05-16T19:06:19.320 回答