14. 변수의 범위

2024. 9. 27. 03:08파이썬(python)

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


1-1.지역 변수
지역변수는 변수가 함수 내에서 정의될때 해당 함수 내부를 의미합니다.


def local_func():
  local_var = '로컬 변수'
  print(local_var)
local_func()
-->
로컬 변수
먼저 실행할시, 에러 발생!! 선언 먼저 하여야한다  
#print(local_var) #NameError: name 'local_var' is not defined


1-2.둘러싼 범위(Enclosinf Scope)
* 둘러싼 범위는 내부 함수에서 외부 함수의 변수를 참조할때 해당 외부 함수 범위를 의미합니다.


def outer_func():
    enclosing_var = "둘러싼 범위 변수"
    def inner_func():
         print(enclosing_var)
    inner_func()
outer_func()
-->
둘러싼 범위 변수


1-3. 전역 범위(Global scope)
전역 범위는 변수가 스크립트의 최상위 수준에서 정의될때 전체 스크립트 파일 내에서 해당 변수를 의미합니다.


1)
global_var = '글로벌 변수'
def test_func():
  print(global_var)

test_func()
-->
글로벌 변수


2)
global_var = 10 #전역 변수
def test_func():
  global_var = 20 #지역 변수
  print(global_var)

#내부의 변수 우선순위 그담은 외부
test_func()
print(global_var)
-->
20
10


3)
global_var = 10 #전역 변수

def test_func():
  global global_var
  global_var = 20   #전역 변수의 값을 수정
  print(global_var)

#내부의 변수 우선순위 그담은 외부
test_func()
print(global_var)
-->
20
20


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


* 변수의 범위 탐색 순서
1.지역 변수(Local scope)
2.둘러싼 범위(Enclosing scope)
3.글로벌 변수(Global scope)
4.내장 범위(Built-in scope)
위와 같은 순서로 탐색을 한다.
지역변위에 동일한 이름의 변수가 없으면 파이썬은 둘러싼 범위를 확인하고, 그 다음으로 전역범위, 마지막으로 내장범위를 확인합니다.
이렇게 변수의 범위를 이해하고 관리하는것은 코드의 가독성과 유지 보수성을 높이고, 예기치 않은 오류를 방지하는데 중요합니다.
728x90
LIST

'파이썬(python)' 카테고리의 다른 글

16. 객체지향과 클래스  (2) 2024.09.27
15. 콜백 함수 & 람다 함수  (2) 2024.09.27
13. 사용자 정의 함수  (2) 2024.09.26
12. 컬렉션 & 반복문  (2) 2024.09.26
11. 제어문-반복문  (3) 2024.09.26