2011-07-01 11 views
1

したがって、次のような例があります。ここでは、みましょうと言うにはコアディレクトリモジュール(と呼ばれるfeedy.py)です:モジュールをモジュールにインポートして、何をしようとしているのか説明できません

import feedparser 

feed = feedparser.parse("http://site.com/feed") 
[...] 

悪い例、とにかく:私の問題は、メインスクリプト(親ディレクトリ)にある、私は

をしなければなりません
import feedparser 

など

from core import feedy 

はしかし、それはすでにfeedy.pyにインポートなので、feedparserをインポートする必要性を排除する方法ですが?

ご理解いただき、 Fike。

+2

なぜインポートステートメントを削除する必要がありますか? –

+0

私のコードを少し小さくする;)。それは大きな違いはないが、とにかく道があるかどうか疑問に思う。 –

+0

メインスクリプトで 'feedparser'を直接使用していない場合は、インポートする必要はありません。逆に、メインスクリプトで 'feedparser'のコードが必要な場合は、インポートする必要があります。 – bernie

答えて

0

原則として、はい。しかし、通常は良い考えではありません。

モジュールimportモジュールを使用すると、そのモジュールへの参照であるローカル変数が効果的に宣言されます。したがって、feedyにはfeedparserというオブジェクトがありますが、それはモジュールfeedparserになりますが、いつでも他のPythonオブジェクトに再割り当てできます。

import feedyの場合は、feedyのエクスポート変数のいずれかをfeedy.nameとして参照できます。この場合、feedy.feedparserはモジュールfeedparserです。

feedparserをインポート(またはエクスポート)しないようにfeedyが実装されている方法を変更すると、メインスクリプトが壊れてしまいます。一般的には、定義したものすべてをエクスポートしたくはありませんが、素早くハックしても問題ありません。

+0

ああ、それは大丈夫です、 'feedparser'で小さなテストをしました。とにかく、ありがとうとありがとう) –

+0

@fikeもしあなたがこの答えに満足すれば、それを受け入れるか、少なくとも投票してください。 :) –

+0

私はそれを投票するために15の担当者が必要です:P。しかし、私はそれを受け入れた:)。申し訳ありません、私はここでナブです:) –

関連する問題