У меня такая простая структура модуля:
mod1/
__init__.py
clsOne.py
clsN.py
Где код выглядит так:
__init__.py:
# module init
from clsOne import MyFirstCLass
from clsN import NThCLass
clshnd = MyFirstClass()
...
nhnd = NThClass()
clsOne.py:
class MyFirstClass( object ):
pass
clsN.py:
classNThClass( object ):
pass
Теперь я использую их следующим образом:
Way #1)
from mod1.clsOne import MyFirstClass
или:
Way #2)
from mod1 import clshnd
Можно ли импортировать имя clshnd
, но таким образом, чтобы другие обработчики (т.е. nhnd
) инициализировались только по требованию (при явном импорте)?
На данный момент оба пути: путь № 1 и путь № 2 вызывают вызов инициализации модуля, а значит: также создается объект NThClass. Я хотел бы избежать этого, потому что у меня много таких классов и я хотел бы избежать долгой инициализации, однако я также хотел бы иметь простой доступ (путь № 2).
Возможно ли это вообще или мне нужно перепроектировать модули и файлы (удалить из init )?
Збигнев