파이썬에서 변수의 범위(scope)는 해당 변수가 프로그램 내에서 참조되고 변경될 수 있는 영역을 의미합니다. 파이썬의 변수 범위는 크게 네 가지로 분류됩니다
Local scope는 변수가 함수 내에서 정의될 때 해당 함수 내부를 의미합니다.
def local_example():
local_var = "로컬 변수"
print(local_var)
local_example()
Enclosing scope는 내부 함수에서 외부 함수의 변수를 참조할 때 해당 외부 함수 범위를 의미합니다.
def outer_funtion():
enclosing_var = "둘러싼 범위 변수"
def inner_function():
print(enclosing_var)
inner_function()
outer_funtion()
Global scope는 변수가 스크립트의 최상위 수준에서 정의될 때 전체 스크립트 파일 내에서 해당 변수를 의미합니다.
global_var = '글로벌 변수'
def test_global_scope():
print(global_var)
test_global_scope()
global_var = 10
def modify_global():
global_var = 20
print(global_var)
modify_global()
print(global_var)
global_var = 10
def modify_global():
global global_var
global_var = 20 #글로벌 변수의 값을 수정할 수 있음
print(global_var)
modify_global()
print(global_var)
global global_var 를 입력해주면 글로벌 변수의 값을 수정할 수 있다.
Built-in scope는 파이썬의 내장 함수와 모듈들이 속하는 범위입니다. 예를 들어, print(), len() 같은 함수들이 여기에 해당됩니다.
print(print)
따라서 지역 범위에 동일한 이름의 변수가 없으면 파이썬은 둘러싼 범위를 확인하고, 그 다음으로 전역 범위, 마지막으로 내장 범위를 확인합니다.
이렇게 변수의 범위를 이해하고 관리하는 것은 코드의 가독성과 유지 보수성을 높이고, 예기치 않은 오류를 방지하는 데 중요합니다.