본문 바로가기

Python

[python] 파이썬에서 전역 변수 사용하기 - global

반응형

 

파이썬에서 전역변수를 사용하다가 예상대로 코드가 실행되지 않는다는 것을 발견했다. 

 

전역변수 사용의 잘못된 코드

# 전역 변수
val = False

def change_val():
    # 아래 val은 함수내의 '지역변수'다. 
    val = True
    
change_val()
print(val)


>> False

val이라는 전역 변수를 change_val 이라는 함수내에서 변경하려고 했으나 변경되지 않고 False 값이 그대로 출력되었다. 이는 C언어의 문법을 기반으로 생각했기 때문에 함수 내에서 변수값이 변경될거라 생각했다. 하지만 파이썬 함수 내에서 전역 변수를 수정하려면 global 키워드를 통해서 전역변수임을 명시해주어야 한다. 그렇지 않으면 그저 함수내에 지역 변수로 인식될 것이다.  

 

 

전역변수를 사용할래요 - global 키워드

val = False

def change_val():
    global val
    val = True
    

change_val()
print(val)

위 코드와 기존 코드의 다른 점은 global 키워드를 통해 전역변수 val을 사용한다고 명시했다. 

참고로 아래와 같이 함수 내부에서 전역 변수 선언을 할 수도 있다.  

 

def change_val():
    global val
    val = True
    

change_val()
print(val)

 

반응형