В Python нет способа поделиться именем между модулями.Если есть что-то, к чему вы хотите получить доступ из нескольких модулей, вы объявляете это в отдельном модуле (например, «настройки»), а затем импортируете это куда хотите.
settings.py:
SETTINGS = autosettings.autoSettings()
CONTROLLERS = {}
aerialcontroller.py
from settings import SETTINGS, CONTROLLERS
class aerialController(object):
def __init__(self):
self.motor_number = str(SETTINGS.aerial_motor_number)
CONTROLLERS[self.motor_number] = self
Примечание. from settings import SETTINGS
будет работать столько, сколько вам нужно изменить НАСТРОЙКИ.Если вы хотите полностью заменить его новым набором настроек (SETTINGS = ...
), вам необходимо выполнить настройки импорта и обозначить его как settings.SETTINGS
.
Это сделано специально: если модули получили переменные изВ сценарии, который их импортировал, было бы намного сложнее увидеть, откуда они взялись при чтении кода (а импорт модуля из другого места может не сработать).Делая это таким образом, вы всегда можете увидеть, откуда переменная находится внутри каждого файла (ну, почти всегда: пожалуйста, не злоупотребляйте from <name> import *
).