Уведомления

Группа в Telegram: @pythonsu

#1 Июль 22, 2018 17:38:32

RNar
Зарегистрирован: 2018-07-08
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Импорт во вложенные каталоги

Доброго дня. Есть такая структура :
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)…

Офлайн

#2 Июль 22, 2018 17:40:39

RNar
Зарегистрирован: 2018-07-08
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Импорт во вложенные каталоги

Каталог логики вложен в каталоге рут, и паралелен каталогу вида… Если это важно)
Просто текст не сохранил форматирования, забыл о тегах)

Офлайн

#3 Июль 22, 2018 17:45:47

RNar
Зарегистрирован: 2018-07-08
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Импорт во вложенные каталоги

И ещё возник вопрос .
Можно получить список всех файлов и папок файловой системы, не бегая по ней циклами?

Офлайн

#4 Июль 22, 2018 20:17:42

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Импорт во вложенные каталоги

RNar
Чтобы не писать в каждом файле from Core import C1, C2, C3…
 from Core import *
RNar
список всех файлов и папок файловой системы, не бегая по ней циклами?
шоб совсем без циклов это наврядли, даже если вы как то полезете напрямую в ФС. Обратите внимание на os.walk(), очень облегчает работу.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Июль 22, 2018 22:59:58

RNar
Зарегистрирован: 2018-07-08
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Импорт во вложенные каталоги

PEHDOM
Слишком выдернули из контекста, об импорте)
Мне нужно избавиться от конструкции импорта файла ядра, вообще, во всех файлах, он должен быть там итак импортирован, по дефолту . Ибо надоело его абсолютно во всех файлах импортировать руками. Получается много дубляжа кода как-то из-за этого импорта) .. надеюсь правильно пояснил .
За os.walk(), отдельно, огромное спасибо)

Офлайн

#6 Июль 23, 2018 11:42:57

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Импорт во вложенные каталоги

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, или у него может быть свой файл автозагрузки..

На какой сядещь сам, а на какой…? ну вобщем понятно.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 23, 2018 11:51:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version