2012-05-16 109 views

回答

4

通過文件收率迭代其所有行,例如:

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

結果:

line1 

line2 

line3 

如果foo.txt是:

line1 
line2 
line3 

(額外的新行,因爲line包括文件的換行符)。

因此,遍歷一個類的實例,該類的源代碼在結果中發佈了一個代碼段,迭代該實例的file的行。

+0

在這種情況下,mixin可能會被用作處理圖像或其他非文本文件的類的基礎。你爲什麼要遍歷圖像文件的每一行? – HighLife

+1

@HighLife如果這是一個python文件接口的實現,我想這完全是爲了實現\ __ iter__方法或多或少是強制性的。 – XORcist

+0

python文件接口需要'__iter__'方法嗎?我在哪裏可以找到關於python文件界面的更多信息? – HighLife

2

__iter__當它作爲參數傳遞給iter()時,會在某個對象上被調用。換句話說,如果你在幕後調用iter(a),Python默認最終會調用a.__iter__()

對於這個特定的實現,它會返回file成員的迭代器,無論這可能是什麼。

相關問題