У меня есть следующие файлы и каталоги в корневом каталоге моего проекта
main.py
bar.py
foo \
__init__.py
alice.py
bob.py
файлы в каталоге foo являются пустыми файлами, а содержимое bar.py равно
alice = None
bob = None
и main.py is
import foo
import bar
print 'foo:', dir(foo)
print 'bar:', dir(bar)
При выполнении python main.py вывод
foo: ['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']
bar: ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'alice', 'bob']
Почему в foo
нет alice
или bob
? И что я должен делать, кроме
from foo import alice, bob
если я хочу использовать alice
и bob
модуля foo
, так как в этой папке может быть много файлов?
EDIT
Мой вопрос не о встроенной функции dir
, которая дает странный результат. Если я сделаю это в main.py
import foo
foo.alice
Произойдет исключение: AttributeError: у объекта 'module' нет атрибута 'alice'
Кажется, нет alice
в foo
? Мне кажется, у меня возникли проблемы с пониманием того, как импортировать каталог как модуль.