Я полагаю, что существует множество обстоятельств, в которых это имеет смысл, и это упрощает программирование, чтобы иметь некоторые глобальные переменные, известные по нескольким (тесно связанным) модулям. В этом духе я хотел бы немного развить идею наличия модуля глобалов, импортируемого теми модулями, на которые нужно ссылаться.
Когда есть только один такой модуль, я называю его "g". В нем я назначаю значения по умолчанию для каждой переменной, которую я намерен рассматривать как глобальную. В каждом модуле, который использует любой из них, я не использую «из g import var», поскольку это приводит только к локальной переменной, которая инициализируется из g только во время импорта. Я делаю большинство ссылок в форме g.var, и "g." служит постоянным напоминанием о том, что я имею дело с переменной, которая потенциально доступна для других модулей.
Если значение такой глобальной переменной будет часто использоваться в какой-то функции в модуле, то эта функция может сделать локальную копию: var = g.var. Однако важно понимать, что назначения для var являются локальными, и глобальный g.var не может быть обновлен без явной ссылки на g.var в назначении.
Обратите внимание, что вы также можете иметь несколько таких глобальных модулей, совместно используемых различными подмножествами ваших модулей, чтобы держать вещи немного более жестко под контролем. Причина, по которой я использую короткие имена для своих глобальных модулей, состоит в том, чтобы не перегружать код слишком частыми их появлениями. Имея лишь небольшой опыт, они становятся достаточно мнемоническими, имея всего 1 или 2 символа.
Все еще возможно сделать присвоение, скажем, g.x, когда x еще не было определено в g, и тогда другой модуль может получить доступ к g.x. Однако, хотя переводчик это разрешает, этот подход не так прозрачен, и я его избегаю. Все еще существует возможность случайного создания новой переменной в g в результате опечатки в имени переменной для присваивания. Иногда исследование dir (g) полезно для обнаружения любых неожиданных имен, которые могли возникнуть в результате такой аварии.