Python

[python][basic]지역변수 vs 전역변수 (global) 이해하기

지역변수와 전역변수 구분 기준은 무엇일까? 

변수의 유효한 범위가 기준이다.

  • 지역변수 : 함수 내에서만 유효한 변수 (함수를 벗어나면 더 이상 유효하지 않음), 함수 내부에서 선언
  • 전역변수 : 코드 전반에 걸쳐 유효한 변수, 함수 바깥 위치에서 선언, global키워드 사용
param = 10
strdata = '전역변수'

def func1():
	strdata = '지역변수'
    print(strdata)
    
def func2(param):
	param = 1
    
def func3():
	global param
    param = 50
    
func1() # '지역변수' 출력됨
print(strdata) # '전역변수' 출력됨
print(param) # 10 출력됨
func2(param) 
print(param) # 10 출력됨
func3()
print(param) # 50 출력됨

func3의 param변수를 보면 함수 내부에서 global키워드를 통해 전역변수에 접근하는 것을 알 수 있다. 맨 윗줄(line 1)에 보면 함수 외부에서 전역변수 param을 선언했다. 10이라고 초기화한 param 변수는 func3에서 global param으로 param의 값을 50으로 변경되었기 때문에 마지막 줄에서 param을 출력해보면 50이 출력된다.