2010-12-29 13 views
1

私は繰り返し使用されるいくつかの関数を定義し、いくつかの定数を追加するユーティリティモジュールを持っています。私も悩みこれらの定数をインポートするに実行しているよ...私はおそらく作ってるんだもPythonインポートの問題

from Utils.Constants import A as DistinctA 
class A(object): 
    .... Implementation .... 
    some_var = DistinctA.SOME_CONSTANT 

class Utils(object): 
    class Constants(object): 
    class A(object): 
     SOME_CONSTANT = "Constant" 

という名前

はのは、私はクラスAに働いているとしましょう、と私は私の定数でクラスを持っていますこれはあまりにもJavaに似ていますので、もしそうなら、私の指輪を定規で鳴らしてください。

このクラスをインポートしようとすると、Constantsという名前のモジュールがないというエラーが表示されます。このPython初心者は何が足りないのですか?

答えて

3

'from'の後の識別子は、モジュールを指している必要があります。あなたはクラスを参照することはできません。あなたのネストされたクラスが「pythonic」であるかどうかは言い表せませんが、私はそれが以前と同じように行われたことは決して見たことがありません。私は、Aクラスを含むconstants.pyモジュールを作成する傾向があります。

from constants import A as DistinctA 

あなたが本当にこれらの定数は、utilsの内側に住みたい場合は、パッケージutilsの作ることができます:あなたがこれを行うことができ

utils/ 
utils/__init__.py 
utils/constants.py 

を次に、あなたが行うことができます。

from utils.constants import A as DistinctA 
関連する問題