Найти - Пользователи
Полная версия: Импорт во вложенные каталоги
Начало » Python для новичков » Импорт во вложенные каталоги
1
RNar
Доброго дня. Есть такая структура :
Root /
Core.py
Main.py
__init__.py

Logic/
FileN.py
Init…
View/
FileN.py
….
Other….
В файле core есть три класса , C1,C2, & C3.
И все они, в равной степени используются во всех скриптах проекта.
Вопрос заключается вот в чем:
Как импортировать классы файла
Core, во все скрипты , во всех вложенных каталогах? Чтобы не писать в каждом файле from Core import C1, C2, C3…
А просто сразу вызывать C1.method(**params)…
RNar
Каталог логики вложен в каталоге рут, и паралелен каталогу вида… Если это важно)
Просто текст не сохранил форматирования, забыл о тегах)
RNar
И ещё возник вопрос .
Можно получить список всех файлов и папок файловой системы, не бегая по ней циклами?
PEHDOM
RNar
Чтобы не писать в каждом файле from Core import C1, C2, C3…
 from Core import *
RNar
список всех файлов и папок файловой системы, не бегая по ней циклами?
шоб совсем без циклов это наврядли, даже если вы как то полезете напрямую в ФС. Обратите внимание на os.walk(), очень облегчает работу.
RNar
PEHDOM
Слишком выдернули из контекста, об импорте)
Мне нужно избавиться от конструкции импорта файла ядра, вообще, во всех файлах, он должен быть там итак импортирован, по дефолту . Ибо надоело его абсолютно во всех файлах импортировать руками. Получается много дубляжа кода как-то из-за этого импорта) .. надеюсь правильно пояснил .
За os.walk(), отдельно, огромное спасибо)
PEHDOM
RNar
Мне нужно избавиться от конструкции импорта файла ядра, вообще, во всех файлах, он должен быть там итак импортирован, по дефолту . Ибо надоело его абсолютно во всех файлах импортировать руками. Получается много дубляжа кода как-то из-за этого импорта) .. надеюсь правильно пояснил .
теперь понятно, имхо, чтоб совсем ничего не делать, то никак.
Но есть два стула, варианта которые могут пригодиться.
1. Если у вас много букаф, можно немного уменьшить код написать отдельный модуль, типа
 #my_imports.py
from module1 import m1_1, m1_2... m1_n
from module2 import ...
....
from moduleN import ...
и потом вызывать уже его по типу from my_imports import *

2. В переменной окружения PYTHONSTARTUP прописать тот же my_imports.py. Python автоматически выполнит код этого файла при открытии окна Python. По крайней мере это актуально для интерактивной среды. В IDLE могут быть свои заморочки, оно может не видеть или не выполнять скрипт указаный в PYTHONSTARTUP, или у него может быть свой файл автозагрузки..

На какой сядещь сам, а на какой…? ну вобщем понятно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB