Форум сайта python.su
0
делаю небольшой фреймворк
есть папка engine, в ней __init__.py и десяток файлов, каждый из которых содержит в себе класс
хотелось бы подключить это так:
from engine import *
но не получается.
перебрал в цикле:
files = os.listdir('engine')
files = [file.replace('.py', '') for file in files if file.endswith('.py') and not file.startswith('_')]
print(files)
for file in files:
print('import ' + file)
__import__('engine.' + file)from engine.module import myModule
Отредактировано (Март 30, 2011 09:30:26)
Офлайн
6
делайте import engine а в engine/__init__.py импортируйте все необходимые модули.
Офлайн
32
на практике все модуля везде не нужны, лучше подключать их по мере необходимости.
а ещё можно использовать модули обратным вызовом, при импорте модуль регистрирует себя куда надо, а потом когда надо - отрабатывает.
Офлайн
6
т.е. приходим к плагинам а-ля http://yapsy.sourceforge.net/
Офлайн
0
делайте import engine а в engine/__init__.py импортируйте все необходимые модули.
Офлайн
14
Можно добавить, что from module import * затягивает все имена, перечисленные в __all__ этого модуля (если определен, конечно).
Прописывание __all__ добавляет немного порядка в код.
Офлайн