1. 스코프(scope)
1-1. 지역 변수(Local): 내부 함수에서만 사용할 수 있는 변수이다 .
def local_func():
local_var = '로컬 변수'
print(local_var)
local_func()
print(local_var) # NameError: name 'local_var' is not defined
1-2. 둘러싼 범위(Enclosin): 내부 함수에서 외부 함수의 변수를 참조할 때 해당 외부 함수의 범위를 의미한다.
def outer_func():
enclosing_var = '둘러싼 범위 변수'
def inner_func():
print(enclosing_var)
inner_func()
outer_func()
inner_func() # 내부 함수는 부를 수 없음
1-3. 전역 범위(Global): global_var 전역 변수와 지역 변수가 이름은 동일하지만 서로 다른 변수로 저장된다.
global_var = '글로벌 변수'
def test_func():
print(global_var)
global_var = 10 # 전역 변수
def test_func():
global_var = 20 # 지역 변수
print(global_var)
test_func()
print(global_var)
global_var = 10 # 전역 변수
def test_func():
global global_var
global_var = 20 # 지역 변수
print(global_var)
test_func()
print(global_var)
1-4. 내장 범위(Built-in): 내장 함수와 모듈이 속하는 범위이다. print(), len() 등이 해당된다.
2. 변수의 범위 탐색 순서
(1) Local scope
(2) Enclosing scope
(3) Global scope
(4) Built-in scope
'파이썬 > 파이썬 기초 문법' 카테고리의 다른 글
| 객체지향과 클래스 (0) | 2024.10.14 |
|---|---|
| 파이썬 콜백 함수와 람다 함수 (1) | 2024.10.07 |
| 파이썬 사용자 정의 함수와 None (0) | 2024.09.30 |
| 파이썬의 컬렉션과 반복문 (1) | 2024.09.26 |
| Input 함수 (0) | 2024.09.26 |