python изменяет значение глобальной переменной

#python #variables #global

#python #переменные #глобальный

Вопрос:

Это может быть глупый вопрос, но я просто хочу знать, почему и как.

У меня есть переменная deviceConfig (dict), объявленная глобально в файле .py. Мой ожидаемый результат: после завершения запуска .py значение глобальной переменной в файле изменится.

Я протестировал вывод значения в верхней части сценария и в конце сценария. После завершения выполнения Python начальное значение и выходные данные отличаются. Это означает, что он работает для изменения значения глобальной переменной во время выполнения.

Но когда я снова открываю файл .py после его завершения, значение переменной остается прежним. (может быть, потому, что я жестко закодировал значение dict?)

 deviceConfig = {}

deviceConfig["sw_ui"] = "0.1"

print deviceConfig #output 0.1

#this is change value function
def alterValue():

    global deviceConfig

    #change the value from 0.1 to 0.2
    deviceConfig["sw_ui"] = "0.2"


alterValue()
print deviceConfig #output 0.2 at runtime 
  

Комментарии:

1. что вы имеете в виду под «Но я снова открываю файл .py после завершения»?

Ответ №1:

Когда вы делаете это

 deviceConfig["sw_ui"] = "0.2"
  

вы изменяете значение во время выполнения deviceConfig["sw_ui"] . Но изменение значения переменной во время выполнения не меняет исходный код вашего Python. Если вы хотите, чтобы такие изменения сохранялись при вызовах вашей программы, вам необходимо сохранить их в файле конфигурации.