Я использую python 2.6, и я вижу несколько странное поведение с функцией dir()
. Я пытаюсь импортировать все модули из каталога/пакета для unittest, но когда я делаю dir()
в папке, я не получаю все модули в этом каталоге.
Пример структуры каталога:
|-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 с pydev в eclipse.
Контекст:
Каждый модуль в mod_dir имеет unittest в нем, и я пытаюсь включить их в набор unittest в test.py. Я знаю нос и другие методы, подобные этому, но меня больше интересует, почему dir не отображает все.
Я считаю, что имеет значение, что файл __init__.py
пуст.
Попробуйте это в __init__.py
:
import modA
import modB
import modC
Из документов python не следует использовать dir
(см. Примечание внизу раздела dir
). Это не достаточно строго, и в основном используется в интерактивной подсказке.