본문 바로가기

Trial & Error

파이썬 입문 시에 많이 보는 에러(2)-NameError

 

이번 글에서는 NameError의 발생 원인과 이를 해결하는 방법을 살펴보겠습니다.

 

1. NameError란?

NameError는 Python 코드에서 정의되지 않은 변수, 함수, 혹은 객체를 참조할 때 발생하는 오류입니다. Python은 변수나 객체가 선언되어야만 사용할 수 있기 때문에, 이를 정의하지 않은 상태에서 접근하려고 하면 오류가 발생합니다.

또한 변수 이름을 잘못 입력하거나 오타가 있을 경우에도 이 오류가 발생할 수 있습니다.

 

2. 발생 예시

(1) 정의되지 않은 변수를 참조한 경우

다음 코드를 살펴보겠습니다.

print(a)  # 오류 발생

위 코드는 변수 a가 정의되지 않았음에도 참조하려고 하기 때문에 NameError가 발생합니다. 오류 메시지는 다음과 같이 나타납니다.

csharp
코드 복사
NameError: name 'a' is not defined

(2) 변수 이름의 오타

변수 이름을 잘못 입력한 경우에도 동일한 오류가 발생할 수 있습니다.

my_variable = 10
print(my_vairable)  # 오류 발생 (오타)

위 코드에서는 my_variable을 정의했지만, 출력할 때 변수명을 my_vairable로 잘못 입력하여 오류가 발생합니다.

(3) 함수를 정의하지 않고 호출한 경우

greet()  # 오류 발생

함수 greet가 정의되지 않았음에도 호출하려고 했기 때문에 NameError가 발생합니다.

 

3. 해결 방법

 

(1) 변수나 함수가 정의되었는지 확인하기

먼저 참조하려는 변수나 함수가 제대로 정의되었는지 확인하세요. 정의되지 않은 경우, 아래와 같이 변수를 선언하고 값을 할당한 후 사용할 수 있습니다.

a = 5
print(a)  # 올바른 참조

(2) 변수 이름에 오타가 없는지 점검하기

변수나 함수 이름이 일관되게 사용되고 있는지 확인하세요. 위 예제의 경우 오타를 수정하면 문제가 해결됩니다.

my_variable = 10
print(my_variable)  # 올바른 변수명

(3) 함수를 정의한 후 호출하기

함수를 호출하기 전에 반드시 함수가 정의되어 있어야 합니다.

def greet():
    print("Hello")

greet()  # 함수 호출

 

 

 

NameError는 주로 변수나 함수가 정의되지 않았거나 이름에 오타가 있을 때 발생합니다. 이를 방지하려면 코드를 작성할 때 변수와 함수 이름을 꼼꼼히 확인하고, 일관된 네이밍 규칙을 따르는 습관을 기르시기 바랍니다!