2016-09-14 2 views
1

モジュールを作成しました。それは__init__.pyという独自のフォルダにあり、私のクラスを含む4つのファイルです。Python 2.7で私自身のモジュールをインポートするときに一貫性のない動作

from MyPackage import *私が__all__の文に書き込んだモジュールが、私の__init__.pyにちょうど期待通りに得られます。

from MyPackage import ModuleXモジュールを個別にインポートすることができます。

import MyPackageをやって、その後、しかしdir(MyPackage)を言って、私が得るすべてはこれです:

['__all__', 
'__builtins__', 
'__doc__', 
'__file__', 
'__name__', 
'__package__', 
'__path__'] 

私のモジュールが示されていないと私はどちらかMyPackage.ModuleXを使用してそれらにアクセスすることはできません。

__init__.pyに書き込んだのは__all__ = [ModuleX]です。

なぜ最後のステートメントに自分のモジュールが表示されないのですか?もう少し設定をしなければならないのですか?

答えて

1

__all__は、がそのモジュールからにエクスポートされた名前を決定します。しかし、それらをエクスポートするには、まずインポートする必要があります。

+0

パッケージのすべてのモジュールを '__init __。py'にインポートして、' import MyPackage'コマンドでそれらを使用するには、 'from'キーワードで簡単にインポートすることができます。 – Khris

関連する問題