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 は、プロパティとして .fp (ファイル ポインター) を持つRequestオブジェクトを返します。デフォルトでは、繰り返し処理される 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 に答える