发布网友 发布时间:2022-04-25 22:12
共2个回答
热心网友 时间:2022-04-18 14:48
for line, prevlines in search(f, 'python', 5):
这行是调用上文中定义的search方法,这个方法中的最后是通过yield返回了两个参数line,和previous_lines,yield是一个迭代器,具体用法这就不详细说了,因为yield是返回两个参数,这句离要用line和prelines来接收两个返回值,search方法中的三个参数根据上边的方法中的定义分别为f是打开的文件的代指参照with open(r'../../cookbook/somefile.txt') as f,'python'是需要查找的条件,参照search方法中的if pattern in line:,5是指search方法中设定的deque双向队列的最大长度。
for pline in prevlines
这句是因为在search方法的结尾处previous_lines.append(line),把查找的包含'python'这句的line添加进了previous_lines这个双向队列,要对这个双向队列遍历输出,所以采用这种写法,其中的pline为代称,可以为任意值,改成a,b,c也没有影响,不过相对应的输出结果的print里的pline也要改成相对应的a,b,c
(望采纳)
热心网友 时间:2022-04-18 16:06
yield line, previous_lines
yield关键字你自己去查下