2013-07-08 9 views
10

私はこれらの2行でPythonスクリプトを持っている:それは印刷しなぜこのPythonコードが2回実行されていますか?

import requests 
print len(dir(requests)) 

12 
48 

私は、実際のリストdir(requests)を印刷するとき、私はこの取得:

['__author__', '__build__', '__builtins__', '__copyright__', '__doc__', '__file__', '__license__', '__name__', '__package__', '__path__', '__title__', '__version__'] 
['ConnectionError', 'HTTPError', 'NullHandler', 'PreparedRequest', 'Request', 'RequestException', 'Response', 'Session', 'Timeout', 'TooManyRedirects', 'URLRequired', '__author__', '__build__', '__builtins__', '__copyright__', '__doc__', '__file__', '__license__', '__name__', '__package__', '__path__', '__title__', '__version__', 'adapters', 'api', 'auth', 'certs', 'codes', 'compat', 'cookies', 'delete', 'exceptions', 'get', 'head', 'hooks', 'logging', 'models', 'options', 'packages', 'patch', 'post', 'put', 'request', 'session', 'sessions', 'status_codes', 'structures', 'utils'] 

を私は複数のrequestsモジュールがあると思います。助けてください。

+0

「実際のアレイ」とは何ですか?いつそれらを印刷しますか?詳細については、ください。 – kindall

+0

* dir(要求)によって返される*リスト*。編集 – Bruce

+0

しかし、あなたはそれを一度しかやっていません。どのような状況下でそれぞれを得るのですか? – kindall

答えて

13

requestsパッケージでインポートされた標準モジュール名などの名前をスクリプトに渡しました。循環インポートを作成しました。

yourscript -> import requests -> [0 or more other modules] -> import yourscript -> import requests again 

requests完全がサポートされているオブジェクトのリストで、これらの違いを見ることが初めてをインポートしませんでしたので。

しないでください。あなたのスクリプトの名前を変更してください。

+1

イエス。それは 'http.py'でした。 – Bruce

1

最初のモジュールは自分のモジュールです 2番目はHTTP要求を処理するモジュールです。 自分のモジュールの名前を変更する

関連する問題