Есть случаи, когда можно использовать глобальные переменные в Python, например, если есть задача по доступу к переменным между файлами в проекте на Python. Предположим вы сделали большой проект и импортировали в него несколько модулей, причем часть работы одного модуля зависит от расчетов и переменной некой конфигурации из главного выполняемого файла и/или другого модуля.
В таком случае проще воспользоваться глобальными переменными в Python, конечно можно и без них - например через классы, но если задача не столь критична - то предпочтительнее простой подход.
- Так, как же передать значения переменных между файлами Python?
- Как получить доступ к переменным между файлами на Python?
Ответ: Будем использовать глобальные переменные.
Для этого нам понадобиться создать отдельный файл - новый модуль для хранения всех глобальных переменных, которые могут понадобиться нашему приложению/проекту.
Создаем файл globals.py
В этом файле теперь создадим функцию initialize, которая будет инициализировать глобальную переменную val1 значением по умолчанию:
def initialize():
global val1
val1 = 0.0
Осталось только один раз вызвать эту функцию initialize из нашего основного класса/файла, например из файла main.py и затем мы сможем импортировать файл globals из любого другого класса/файла проекта и использовать эти глобальные переменные.
Создаем файл my_super_module.py
И в нем создаем функцию myfunction, в которой будет изменяться значение глобальной переменной (не забываем импортировать файл globals.py для доступа к глобальным переменным):
import globals
def myfunction():
globals.val1 += 1
И наконец, вот пример основного файла проекта main.py
import globals
import my_super_module
if __name__ == "__main__":
globals.initialize() # инициализируем глобальные переменные
print( globals.val1 ) # выводим начальное значение, которое определили в момент инициализации
my_super_module.myfunction() # вызываем функцию из my_super_module, которая меняет значение глобальной переменной
print( globals.val1 ) # выводим значение глобальной переменной, которое было изменено при вызове функции myfunction из нашего модуля my_super_module
Вот результат вывода в консоль при выполнении файла main.py:
0.0
1.0
В комментариях в файле main.py я постарался подробно объяснить процесс его работы, если что-то осталось непонятно, то смело пишите об этом - ваш вопрос в комментариях под этой статьей.
Если контент понравился, то Подписывайтесь на канал!