728x90
반응형
- 개요
클로저에 대해서 알아보기 이전에 파이썬에서 변수의 스코프에 대해 알아본다
스코프는 변수의 유효 범위를 의미하고 변수는 해당 범위에서만 유효하고 범위안에서만 접근이 가능하다
- 스크립트
c = 40
def func_print(num):
print(f"print : {num}")
print(f"print : {c}")
c = 50
def func_print2(num):
c = 50
print(f"print2 : {num}")
print(f"print2 : {c}")
def func_print3(num):
global c
print(f"print3 : {num}")
print(f"print3 : {c}")
def func_print4(num):
global c
print(f"print4 : {num}")
print(f"print4 : {c}")
c = 500
위와 같이 전역변수 c를 선언하고 이를 사용하는 4개의 함수를 구성하였다
- func_print1 함수 : 인자로 받은 값과 c를 출력하고, c의 값을 재설정
- func_print2 함수 : c의 값을 재설정하고, 인자로 받은 값과 c를 출력
- func_print3 함수 : global 키워드를 사용하여 c를 사용하고, 인자로 받은 값과 c를 출력
- func_print4 함수 : global 키워드를 사용하여 c를 사용하고, 인자로 받은 값과 c를 출력, c의 값을 재설정
print(f"Before : {c}")
func_print4(100)
print(f"After : {c}")
func_print3(100)
func_print2(100)
func_print(100)
함수의 실행 순서는 위와 같이 구성하였다
- 실행 결과

코드의 실행 결과는 위와 같다
실행 결과에서 알아볼 수 있는 것은 func_print1 함수의 경우 에러가 발생한다는 점이다
해당 에러는 지역 변수 c가 아직 값이 할당되지 않았음을 의미한다
파이썬에서는 다른 언어와 다르게 전역 변수를 사용하기 위해서는 반드시 global 키워드를 사용해야 한다
728x90
반응형
'Python > 파이썬 심화' 카테고리의 다른 글
| 데코레이터 (0) | 2025.09.02 |
|---|---|
| 클로저 (2) (0) | 2025.08.21 |
| 일급 함수의 특징 (2) (0) | 2025.08.15 |
| 일급 함수의 특징 (1) (0) | 2025.08.12 |
| 파이썬 시퀀스 (7) (0) | 2025.08.12 |