본문 바로가기
Error(Exception)/ERROR-PYTHON

[python] ReferenceError

by 조조군 2024. 12. 2.
반응형

ReferenceError


1. 오류 설명

ReferenceError는 파이썬에서 특정 변수, 함수 또는 객체를 참조하려고 했을 때, 해당 참조가 존재하지 않는 경우 발생합니다. 보통은 변수가 정의되지 않았거나, 잘못된 스코프에서 접근했을 때 나타납니다.
예를 들어, 로컬 스코프에서 선언된 변수를 글로벌 스코프에서 참조하려 할 때 발생할 수 있습니다.


2. 오류 예시

  • 정의되지 않은 변수를 참조하는 경우:
  • print(a) # 'a'는 정의되지 않음
  • 함수 내에서 로컬 변수를 사용하기 전에 참조하는 경우:
  • def my_function(): print(a) # 함수 내부에서 'a'를 참조하지만 정의되지 않음 my_function()
  • 스코프 문제:
  • def my_function(): a = 10 print(a) # 함수 내부 변수는 함수 외부에서 접근 불가

3. 오류 해결책

  1. 변수가 정의되었는지 확인: 변수를 사용하기 전에 적절히 선언했는지 확인합니다.
  2. 스코프 확인: 로컬 변수와 글로벌 변수의 스코프를 구분하여 올바르게 참조합니다.
  3. 명시적인 초기화: 변수를 참조하기 전에 초기화하여 할당합니다.

4. 오류 예제 코드 및 해결 코드

예제 코드 (오류 발생)

# 정의되지 않은 변수를 참조하는 경우
print(x)  # ReferenceError: x is not defined

# 함수 내부 변수를 외부에서 참조하려는 경우
def example_function():
    y = 20
example_function()
print(y)  # ReferenceError: y is not defined

해결 코드

# 1. 변수를 정의한 후 사용
x = 10
print(x)  # 출력: 10

# 2. 함수 내부 변수는 반환값으로 사용
def example_function():
    y = 20
    return y

y = example_function()
print(y)  # 출력: 20

스코프 문제 해결

# 글로벌 변수를 함수 내부에서 사용
z = 30

def another_function():
    global z
    z += 10

another_function()
print(z)  # 출력: 40
반응형

'Error(Exception) > ERROR-PYTHON' 카테고리의 다른 글

[python] StopAsyncIteration  (0) 2024.12.04
[python] StopIteration  (0) 2024.12.03
[python] RecursionError  (0) 2024.12.01
[python] OverflowError  (0) 2024.11.30
[python] OSError  (1) 2024.11.29

댓글