Я новичок Python, исходящий из фона С++. Хотя я знаю, что это не Pythonic, чтобы попытаться найти подходящую концепцию, используя мои старые знания на С++, я думаю, что этот вопрос по-прежнему остается общим вопросом:
В С++ существует известная проблема, называемая фиаско порядка инициализации глобальной/статической переменной, из-за невозможности С++ решить, какая глобальная/статическая переменная будет инициализирована сначала в единицах компиляции, таким образом, глобальная/статическая переменная, зависящая от другой в разных единицах компиляции могут быть инициализированы раньше, чем их сопоставления зависимостей, и когда зависимые начинают использовать сервисы, предоставляемые объектом зависимости, мы будем иметь поведение undefined. Здесь я не хочу углубляться в то, как С++ решает эту проблему.:)
В мире Python я вижу использование глобальных переменных, даже в разных .py файлах, и один типичный случай использования, который я видел, это: инициализировать один глобальный объект в одном .py файле и на других .py файлах код просто бесстрашно начинает использовать глобальный объект, предполагая, что он, должно быть, был инициализирован где-то еще, что под С++, безусловно, неприемлемо для меня, из-за проблемы, указанной выше.
Я не уверен, что используемый выше пример использования - это обычная практика в Python (Pythonic), и как Python решает эту проблему с проблемой инициализации глобальной переменной вообще?
Большое спасибо!
Лин