2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
for line, prevlines in search(f, 'python', 5):
這行是調(diào)用上文中定義的search方法,這個(gè)方法中的最后是通過yield返回了兩個(gè)參數(shù)line,和previous_lines,yield是一個(gè)迭代器,具體用法這就不詳細(xì)說了,因?yàn)閥ield是返回兩個(gè)參數(shù),這句離要用line和prelines來接收兩個(gè)返回值,search方法中的三個(gè)參數(shù)根據(jù)上邊的方法中的定義分別為f是打開的文件的代指參照with open(r'../../cookbook/somefile.txt') as f,'python'是需要查找的條件,參照search方法中的if pattern in line:,5是指search方法中設(shè)定的deque雙向隊(duì)列的最大長度。
for pline in prevlines
這句是因?yàn)樵趕earch方法的結(jié)尾處previous_lines.append(line),把查找的包含'python'這句的line添加進(jìn)了previous_lines這個(gè)雙向隊(duì)列,要對這個(gè)雙向隊(duì)列遍歷輸出,所以采用這種寫法,其中的pline為代稱,可以為任意值,改成a,b,c也沒有影響,不過相對應(yīng)的輸出結(jié)果的print里的pline也要改成相對應(yīng)的a,b,c
添加回答
舉報(bào)