2022-09-05 TIL sparta

최해민·2022년 9월 5일
0

Python 기초

변수 유효 범위(variable scope)에 대한 이해

- 전역 변수 사용과 지역 변수 할당을 같이 하는 경우

number = 10

# 전역 변수인 10을 출력하고 지역 변수로 다시 선언하는 코드 작성
def func():
    print(number)
    number = 5

# 실행시켜 보면 에러가 발생한다.
func()
"""
Traceback (most recent call last):
  File "sample.py", line 7, in <module>
    func()
  File "sample.py", line 4, in func
    print(number)
UnboundLocalError: local variable 'number' referenced before assignment
"""
  • 에러가 발생하는 이유
    함수 내부에서 전역 변수와 동일한 이름으로 지역 변수를 할당할 경우 함수에서는
    해당 변수를 지역 변수로 간주하게 됩니다. 때문에 print(number)에서는 number라는
    지역 변수가 선언되기 전 출력하려 했기 때문에 이와 같은 에러가 발생합니다.

해당과 같은 경우를 겪어본 적이 있었습니다.
Django 프로젝트를 진행했을 때, 다른 모듈에서 함수를 불러와 사용했었습니다.
함수 내부에서 전역 변수를 사용해 기능을 하는 함수였는데, 다른 모듈에서 불러와 사용하다 보니 현재 지금 작성하고 있는 파이썬 파일에서는 변수가 선언되지 않아 에러가 발생했었습니다.

이창호 튜터님의 파이썬 강의 1일차를 통해 다시 한번 복기하는 시간이 되었습니다.

profile
안녕하세요

0개의 댓글