스코프
변수의 범위(scope)는 해당 변수가 프로그램 내에서 참조되고 변경될 수 있는 영역인데,
크게 네 가지로 분류된다~!
- Local(지역)
: 변수가 함수 내에서 정의 될 때 해당 함수 내부를 의미한다.
def local_example():
local_var = '로컬 변수'
print(local_var)
local_example()
# print(local_var) # NameError: name 'local_var' is not defined 선언되어 있지 않음.(함수 내부에서만 쓸 수 있음)
로컬 변수
- Enclosing(둘러싼 범위)
: 내부 함수에서 외부 함수의 변수를 참조할 때 해당 외부 함수의 범위를 의미 함.
def outer_function():
enclosing_var = '둘러싼 범위 변수'
def inner_function():
print(enclosing_var)
inner_function()
outer_function()
둘러싼 범위 변수
- Global(전역 범위)
: 스크립트의 최상위 수준에서 정의될 때 전체 스크립트 파일 내에서 해당 변수로 사용됨을 의미
global_var = '글로벌 변수'
def test_global_scope():
print(global_var)
test_global_scope()
글로벌 변수
# 전역변수와 지역변수
global_var = 10 # 전역변수
def moify_global():
global_var = 20 # 지역변수
print(global_var)
modify_global()
print(global_var)
20
10
# 전역변수와 지역변수
global_var = 10 # 전역변수
def modify_global():
global global_var
global_var = 20 # 전역변수
print(global_var)
modify_global()
print(global_var)
20
20
- Built-in(내장 범위)
: 파이썬의 내장 함수와 모듈들이 속하는 범위입니다. 예를 들어, print(), len() 같은 함수들이 여기에 해당
print(print)
print(len)
print(sum)
<built-in function print>
<built-in function len>
<built-in function sum>
변수의 범위 탐색 순서
1. Local scope
2. Enclosing scope
3. Global scope
4. Built-in scope
'코딩 > 파이썬' 카테고리의 다른 글
객체지향과 클래스1 (0) | 2024.03.19 |
---|---|
콜백함수와 람다함수 (0) | 2024.03.19 |
사용자 정의 함수 (0) | 2024.03.18 |
컬렉션과 반복문 (0) | 2024.03.15 |
제어문 - 반복문 (0) | 2024.03.15 |