Установить глобальные переменные в функции
У меня есть проблема, когда я устанавливаю некоторые глобальные переменные внутри функции. Но когда я обращаюсь к этим глобальным переменным вне функции (в основной части скрипта), эти глобальные переменные никогда не устанавливались?
Почему следующие глобальные переменные всегда равны 0
и не 1
? Как я могу установить глобальные переменные в моей функции?
currentUserClientID = 0
currentUserMaxLicences = 0
currentUserActivatedLicences = 0
def setGlobals():
currentUserClientID = 1
currentUserMaxLicences = 1
currentUserActivatedLicences = 1
print "Set Globals"
print currentUserClientID
print currentUserMaxLicences
print currentUserActivatedLicences
setGlobals()
print "Global Values"
print currentUserClientID
print currentUserMaxLicences
print currentUserActivatedLicences
Выход:
Set Globals
1
1
1
Global Values
0
0
0
2 ответа
Решение
Просто используйте global
ключевое слово:
def setGlobals():
global currentUserClientID, currentUserMaxLicences, currentUserActivatedLicences
currentUserClientID = 1
currentUserMaxLicences = 1
currentUserActivatedLicences = 1
print "Set Globals"
print currentUserClientID, currentUserMaxLicences, currentUserActivatedLicences
Вы должны объявить переменные как глобальные. Положить global
ключевое слово перед каждым объявлением переменной внутри функции.
def setGlobals():
global currentUserClientID
global currentUserMaxLicences
global currentUserActivatedLicences
currentUserClientID = 1
currentUserMaxLicenses = 1
currentUserActivatedLicenses = 1
print "Set Globals"
print currentUserClientID
print currentUserMaxLicences
print currentUserActivatedLicences