티스토리 뷰

Python

11. 파이썬의 변수 범위

muru_ 2024. 3. 18. 22:29

1.  스코프(scope)

- 변수의 범위(scope)는 해당 변수가 프로그램 내에서 참조되고 변경될 수 있는 영역을 의미

- 크게 Local(지역), Enclosing(둘러싼 범위), Global(전역), Built-in(내장)

1-1. Local (지역)

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

print(local_var)   # 함수가 끝나는 순간 사라지는 변수
# NameError: name 'local_var' is not defined

1-2. Enclosing (둘러싼 범위)

내부 함수에서 외부 함수의 변수를 참조할 때 해당 외부 함수의 범위를 의미

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

1-3. Global (전역)

변수가 최상위 수준에서 정의될 때 전체 스크립파일 내에서 해당 변수로 사용됨을 의미

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()      # 수정된 20이 출력
print(global_var)

 

1-4. Built-in (내장)

파이썬의 내장 함수와 모듈들이 속하는 범위    ex) print(), len() 등

2.  변수 범위 탐색 순서

안쪽에 있는 변수부터

1. Local scope
2. Enclosing scope
3. Global scope
4. Built-in scope

 

 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함