인공지능/파이썬

변수의 범위

Ryuzy 2023. 9. 7. 02:55
728x90
반응형

1. 범위(scope)

파이썬에서 변수의 범위(scope) 해당 변수가 프로그램 내에서 참조되고 변경될 있는 영역을 의미합니다. 파이썬의 변수 범위는 크게 가지로 분류됩니다

 

1. 지역(Local) 범위: 가장 내부의 범위로, 함수 내에서 정의된 변수들이 해당됩니다. 함수 내에서만 접근할 수 있습니다.

def local_example():
    local_var = "로컬 변수"
    print(local_var)

local_example()

 

2. 함수 내부의 블록(Enclosing) 범위: 중첩된 함수 내부에서, 바깥쪽 함수의 변수들을 의미합니다. 중첩 함수가 바깥 함수의 변수를 사용할 수 있게 해줍니다.

def outer_function():
    enclosing_var = "둘러싼 범위 변수"
    
    def inner_function():
        print(enclosing_var)
    
    inner_function()

outer_function()

 

3. 전역(Global) 범위: 스크립트 전체에서 사용되는 범위로, 함수 외부에 정의된 변수가 해당됩니다. 모든 함수에서 접근할 수 있지만, 함수 내부에서 수정하려면 global 키워드가 필요합니다.

global_var = "I'm a global variable"

def test_global_scope():
    print(global_var)

test_global_scope()

 

global_var = 10

def modify_global():
    global global_var
    global_var = 20

modify_global()
print(global_var)  # 출력: 20

 

4. 내장 범위(Built-in): 파이썬이 기본적으로 제공하는 내장 함수나 예외들이 있는 범위로, 예를 들어 print(), len() 등이 해당됩니다.

len = 5  # 내장 함수 'len'을 덮어씀
print(len([1, 2, 3]))  # 오류 발생! len이 함수가 아니라 변수로 인식됨

 

 

2. 변수의 범위 탐색 순서

1. Local scope

2. Enclosing scope

3. Global scope

4. Built-in scope

 

따라서 지역 범위에 동일한 이름의 변수가 없으면 파이썬은 둘러싼 범위를 확인하고, 그다음으로 전역 범위, 마지막으로 내장 범위를 확인합니다. 이렇게 변수의 범위를 이해하고 관리하는 것은 코드의 가독성과 유지 보수성을 높이고, 예기치 않은 오류를 방지하기 위함입니다.

728x90
반응형