본문 바로가기
기초 및 언어/▶ python

13_Python 변수의 범위 (지역변수, 전역변수, 내장범위)

by 류딩이 2023. 12. 11.

1. 스코프(scope)

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

 

 

1-1. Local(지역): Local scope 변수가 함수 내에서 정의될  해당 함수 내부를 의미합니다.

- 함수내에 저장된 변수

 

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

local_example()
더보기
더보기
로컬 변수

 

1-2. Enclosing(둘러싼 범위): Enclosing scope 내부 함수에서 외부 함수의 변수를 참조할  해당 외부 함수 범위를 의미합니다.

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

outer_function()
더보기
더보기
둘러싼 범위 변수
#inner_function()
outer_function() # 외부함수는 내부함수를 부를 수 있음
더보기
더보기
둘러싼 범위 변수

 

1-3. Global(전역 범위): 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()   # 20
print(global_var) # 10
global_var = 10
def modify_global():
  global global_var # 글로벌변수를 수정하려면 global로 전역변수와 같은 변수를 불러옴
  global_var = 20   # 글로벌 값을 수정
  print(global_var)

modify_global()   # 20
print(global_var) # 20

 

 

 

1-4. Built-in(내장 범위):

Built-in scope 파이썬의 내장 함수와 모듈들이 속하는 범위입니다. 예를 들어, print(), len() 같은 함수들이 여기에 해당됩니다.

# 빌트인 함수
print(print)
print(len)
print(sum)
더보기
더보기
<built-in function print>
<built-in function len>
<built-in function sum>

 

 

2. 변수의 범위 탐색 순서

1. Local scope

2. Enclosing scope

3. Global scope

4. Built-in scope

따라서 지역 범위에 동일한 이름의 변수가 없으면 파이썬은 둘러싼 범위를 확인하고, 그 다음으로 전역 범위, 마지막으로 내장 범위를 확인합니다.

이렇게 변수의 범위를 이해하고 관리하는 것은 코드의 가독성과 유지 보수성을 높이고, 예기치 않은 오류를 방지하는  중요합니다.