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__.pymod_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 回答