1

私はpython 2.6を使用していますが、dir()関数でやや奇妙な動作が見られます。単体テストのためにディレクトリ/パッケージからすべてのモジュールをインポートしようとしていますがdir()、フォルダーで onを実行すると、そのディレクトリ内のすべてのモジュールが取得されません。

ディレクトリ構造の例:

|-mod_dir\
|---__init__.py
|---modA.py
|---modB.py
|---modC.py
|
|-mod_tests\
|---__init__.py
|---test.py

サンプル test.py:

import mod_dir

for obj in dir(mod_dir):
   print obj

残念ながら、この時点では次のようなものしか得られません。

modA
__all__
__builtins__
__doc__
__file__
__name__
__package__
__path__

他の人がここに現れない理由について何か考えはありますか? 関係ないと思い__init__.pyますが、mod_dir 内のファイルは空です。変数を設定しようとしまし__all__たが、効果がありません。ただし、問題がある場合は、これを WinXp で使用し、Eclipse で pydev を使用しています。

環境:

mod_dir の下の各モジュールには単体テストがあり、それらを test.py 内の単体テスト スイートに含めようとしています。私は鼻とこのような他の方法を知っていますが、なぜdirがすべてを表示しないのかにもっと興味があります.

4

1 に答える 1

3

__init__.pyファイルが空であることは重要だと思い ます。

でこれを試してください__init__.py

import modA
import modB
import modC

Pythonのドキュメントから、dirこれには使用しないでください(セクションの下部にある注を参照してくださいdir)。厳密ではなく、主にインタラクティブプロンプトで使用されます。

于 2011-08-25T16:38:07.683 に答える