반응형
파이썬에서 함수와 관련된 변수의 범위(scope)를 이해하는 것은 중요합니다. 변수의 범위는 해당 변수가 프로그램 내에서 접근 가능한 영역을 결정합니다.
지역변수
함수내 에서 생성되고, 오직 그 함수 내에서만 접근 가능한 변수들입니다. 함수가 실행을 마치면, 이지역 변수들은 메모리에서 사라지게 됩니다.
def my_function():
local_var = 5 # 지역 변수
print(local_var) # 함수 내에서 접근 가능
my_function() # 출력: 5
#print(local_var) # 오류 발생: local_var는 함수 외부에서 접근 불가
전역변수
함수 외부에서 정의된 변수로, 프로그램 전체에서 접근 가능합니다. 함수 내부에서 전역 변수를 변경하려면, global 키워드를 사용해 해당 변수를 전역 변수임을 명시해야 합니다.
global_var = 10 # 전역 변수
def my_function():
global global_var
global_var = 20 # 전역 변수의 값을 변경
print(global_var)
my_function() # 출력: 20
print(global_var) # 출력: 20
nonlocal 키워드
nonlocal 키워드는 중첩된 함수에서 사용됩니다. 부모 함수의 지역변수를 내부 함수에서 변경하고 싶을 때 nonlocal 키워드를 사용하여 해당 변수를 nonlocal 변수로 선언합니다. 이를 통해 내부 함수에서 부모 함수의 변수를 직접 변경할 수 있습니다.
def outer():
outer_var = "외부"
def inner():
nonlocal outer_var
outer_var = "내부 변경"
inner()
print(outer_var) # 출력: "내부 변경"
outer()
반응형