2014-07-11 2 views
-2

여기 파이썬 코드가 있습니다. 이 코드에서는 두 개의 함수를 정의하고 맨 위에 하나의 변수를 만듭니다. 하지만 내가 로컬 변수를 초기화하지 않은 오류를 생성 아래의 문을 할당과 로컬 함수에서 호출하려고하면. 만약 내가 그것의 값을 성공적으로 액세스 값보다 할당하지 않았다.전역 변수에 액세스하고 파이썬에서 로컬 수준의 값을 변경하는 방법

a=5 
def local(): 
    print("inside local Function before changing %d"%a) 
    a=3 
    print("Insie local Function after changing %d"%a) 
local() 
print("outside local Function after changing %d"%a) 
def global_ars(): 
    global a 
    a=6 
    print("Inside Global Function %d"%a) 
global_ars() 
print("outside Global Function %d"%a) 

나는 글로벌 값에 액세스 할 수 있고 새로운 값을 할당 할 수 있지만 글로벌 레벨이 아닌 로컬 레벨에서만 어떻게 할당 할 수 있는지 알고 싶습니다. 전역에 영향을 미치는 함수 내에서 할당을 원하는 경우에

def f(): 
    local_a = a 
    # Now use local_a instead of a. 

:

+0

을 /stackoverflow.com/q/10851906/1144523 – machow

답변

0

전역 값으로 시작하고 싶어하지만 과제는 로컬 복사본에 영향을 가지고 가정하면,이 솔루션은 또 다른 변수를 확인하는 것입니다 변수 인 경우을 사용하십시오.

0

는 단순히 전역 범위에서 값을 얻을 글로벌 변수 수정하지 않는 :/: 당신은 파이썬 3 + 코드에서 오류 메시지 (나를 위해) 최상위 항목입니다 HTTP 구글 경우

a = 0 
def global_fn(): 
    global a 
    local_a = a 
    print("local original %d"%local_a) 
    local_a = 10 
    print("local modified %d"%local_a) 
global_fn() 
print("global unmodified %d"%a) 
관련 문제