2017-03-25 1 views
0

"결과"이라는 전역 변수가 있는데이 함수를 호출하여이 값을 변경하려고합니다.파이썬에서 전역 값 변경

import sys 

def increment_result(a): 
    for i in range(0,3): 
     a += 1 

result = 0 
increment_result(result) 
print(result) 

그러나 결과 값은 0하지만 파이썬에서 참조로 패스를 사용하여이 전역 변수를 변경할 수 있습니다 3.How 결과 값이 될 것으로 기대한다. 대신 호출자의 변수에 다시 반환 값을 글로벌 변수를 변경 변경된 값을 반환하고 재 할당하려고 노력

+1

함수는 반환하지 않습니다 아무것도 –

답변

2

: 당신이 정말로 전역 변수를 변경하려면

import sys 

def increment_result(a): 
    for i in range(0,3): 
     a += 1 
    return a 

result = 0 
result = increment_result(result) 
print(result) 

, 당신은 그것을 선언 할 필요가

def increment_result(a): 
    global result # <-- to access the global variable 
    for i in range(0,3): 
     a += 1 
    result = a 
+0

이 질문의 중복 가능성 : global 문 사용하여 [파이썬 : I 참조로 문자열을 전달하려면 어떻게을 (http://stackoverflow.com/questions/13608919/python -내가 어떻게 할 -pass-a-string-by-reference) – McGrady

+1

@McGrady, 투표 결과는 닫힙니다. – falsetru

관련 문제