Для того, чтобы многократно не включать модуль в другие модули (хотя это не возброняется, просто нежелательно), нужно помнить следующее.
Предположим, есть три модуля:
Main.py
Config.py
ConfigClass.py
В файле ConfigClass.py лежит код класса ConfigClass. В файле Config.py создается экземпляр класса ConfigClass, и наполняется значениями. Класс ConfigClass имеет методы addItem() и getItemsName()
Файл Config.py:
from ConfigClass import *
myConfig=ConfigClass()
myConfig.addItem("MyName1", "MyValue1")
myConfig.addItem("MyName2", "MyValue2")
А в файле Main.py нужно импортировать этот экземпляр (с именем myConfig) и нужно уметь работать с методами класса ConfigClass. Вопрос. Нужно ли в Main.py импортить ConfigClass.py помимо Config.py? Ответ: не нужно.
Файл Main.py:
from Config import *
def main():
for line in myConfig.getItemsName():
log.echo('Значение: ' + line)
return
if __name__ == '__main__':
main()
И все работает. То есть, несмотря на то, что в модуле Main.py нет ипортирования класса ConfigClass.py, код модуля Main.py способен работать с методами этого класса.