@nrv

Python не изменяется глобальная переменная, почему?

python не изменяется глобальная переменная
3 файла:
run1.py
from run1_static import *
from libstat import *

logstats(c)
print(outcsv_is)


libstat.py
from run1_static import *

def logstats(c : Connection):
  global outcsv_is
  outcsv_is = 'ab'
  return


run1_static.py:
outcsv_is = ''

в функции logstats значение задаётся, проверял в дебаггере
но в основном потоке имеем '' после отработки функции

как я понял, libstat.py имеет свое объявление переменной outcsv_is от своего импорта run1_static.py
а если не импортировать, то global outcsv_is падает в ошибку

получается в python нельзя такие зависимости делать? я не могу дробить на файлы согласно своим желаниям, у меня должно def функции быть в одном файле со статик переменными
  • Вопрос задан
  • 233 просмотра
Пригласить эксперта
Ответы на вопрос 2
@newPsevdonim
Python разработчик
В python не используются глобальные переменные. Ты можешь поступить несколькими способами в данном случае.

Первый и самый простой это завести отдельный python файл и указать в нём переменную нужную тебе, сделать импорт этой переменной и дальше уже делать всё то же самое. С дата классом можно также сделать.

И второе ты можешь предварительно указать нужную переменную (твою глабальную) до одной из своих функций и это тоже сработает в твоём случае.
Ответ написан
Комментировать
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Переменная, которую вы пытались объявить глобальной, не объявлена в глобальной области видимости.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы