我是第一次使用StackOverflow的程序员,从Allen Downey's free online text "Think Python"学习。
此处显示的代码来自练习14.5(第143页)。我一直试图找出.fp
的作用;我的搜索都空了。我使用和不使用代码运行代码,并没有注意到结果的任何差异。我很感激任何人的帮助。
import urllib
conn = urllib.urlopen('http://thinkpython.com/secret.html')
for line in conn.fp:
print line.strip()
答案 0 :(得分:5)
它只是附加到套接字对象的虚假文件对象。
阅读docstring:
>>> help(conn.fp)
答案 1 :(得分:4)
urllib.urlopen返回一个Request对象,该对象具有.fp(文件指针)作为属性。默认情况下,迭代时的Request对象使用相同的指针,因此没有功能差异。
答案 2 :(得分:3)
如前所述,它是一个文件指针,在这个例子中并不是真的需要,因为conn
返回的对象urlopen()
已经是一个类似文件的对象,你可以调用readlines()
在它上面。
如果将示例更改为:
,我认为这会减少混淆import urllib
conn = urllib.urlopen('http://thinkpython.com/secret.html')
for line in conn.readlines():
print line.strip()