2014-04-04 3 views
1

함수 내에 전역 변수를 설정하는 데 문제가 있습니다. 그러나 (스크립트의 주요 부분에서) 함수 외부에서 이러한 전역 변수에 액세스하려고하면 전역 변수가 설정되지 않았습니까?함수의 전역 변수 설정

다음 글로벌 변수가 항상 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 
+0

가능한 중복 (http://stackoverflow.com/questions/423379/ :

def setGlobals(): global currentUserClientID global currentUserMaxLicences global currentUserActivatedLicences currentUserClientID = 1 currentUserMaxLicenses = 1 currentUserActivatedLicenses = 1 print "Set Globals" print currentUserClientID print currentUserMaxLicences print currentUserActivatedLicences 
Martey

답변

2

는 단순히 global 키워드를 사용하여 using-the-one-that-created-them)
3

전역으로 변수를 선언해야합니다. 함수 내의 각 변수 선언 앞에 global 키워드를 넣으십시오. [그들을 만든 아닌 다른 함수에서 전역 변수를 사용]의

def setGlobals(): 
    global currentUserClientID, currentUserMaxLicences, currentUserActivatedLicences 
    currentUserClientID    = 1 
    currentUserMaxLicences   = 1 
    currentUserActivatedLicences = 1 
    print "Set Globals" 
    print currentUserClientID, currentUserMaxLicences, currentUserActivatedLicences 
+0

그게 당신에게 SyntaxError를 줄 것이다 :) – aIKid

+0

고마워, 그것을 고정 :) 정확하게 구문을 잊어 버렸습니다. – gregkow