3

我是第一次程序员,第一次 StackOverflow 用户,学习Allen Downey 的免费在线文本“Think Python”

此处显示的代码来自练习 14.5 (p.143)。我一直在试图弄清楚那是做什么的.fp;我的搜索都是空的。我在有和没有它的情况下运行了代码,并没有注意到结果有任何差异。我很感激任何人对此的帮助。

import urllib

conn = urllib.urlopen('http://thinkpython.com/secret.html')

for line in conn.fp:
    print line.strip()
4

3 回答 3

5

它只是一个附加到套接字对象的虚假文件对象。

阅读文档字符串:

>>> help(conn.fp)
于 2012-06-25T06:24:03.403 回答
4

urllib.urlopen 返回一个Request对象,该对象具有 .fp(文件指针)作为属性。默认情况下,Request 对象在迭代时使用相同的指针,因此没有功能差异。

于 2012-06-25T06:24:43.887 回答
3

如前所述,它是一个文件指针,在此示例中实际上并不需要它,因为conn返回的 objecturlopen()已经是一个类似文件的对象,您可以调用readlines()它。

我认为如果将示例更改为:

import urllib

conn = urllib.urlopen('http://thinkpython.com/secret.html')

for line in conn.readlines():
    print line.strip()
于 2012-06-25T06:32:42.030 回答