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

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

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

'컴퓨터 비전 > 파이썬 기초' 카테고리의 다른 글

15. 객체지향과 클래스  (1) 2023.12.11
14. 콜백함수와 람다함수  (1) 2023.12.11
12. 사용자 정의 함수  (1) 2023.12.10
11. 컬렉션과 반복문  (1) 2023.12.10
10. 제어문 - 반복문  (1) 2023.12.10