13

次の 2 行だけの Python スクリプトがあります。

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モジュールなどがあると思います。助けてください。

4

2 に答える 2

16

requestsスクリプトに、標準モジュールの名前またはパッケージによってインポートされるその他の名前を付けました。循環インポートを作成しました。

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

サポートされているオブジェクトのリストでこれらの違いを初めて確認したときは、インポートが完了requestsしていないためです。

そうしないでください。スクリプトの名前を別の名前に変更すると、すべて機能します。

于 2013-07-08T15:18:42.577 に答える
1

1 つ目は独自のモジュールです。2 つ目は HTTP リクエストを処理するためのモジュールです。自分のモジュールの名前を変更する

于 2013-07-08T15:24:23.827 に答える