프로그래밍언어/파이썬[Error]
[파이썬][Error] 026. TypeError - 'NoneType' object is not callable
about_IT
2025. 5. 27. 21:05
728x90
TypeError: 'NoneType' object is not callable
오류는 None
값을 함수처럼 호출하려 할 때 발생합니다. 즉, 괄호 ()
를 붙여 호출하려는 대상이 사실은 None
이라는 값일 경우, 파이썬은 이를 함수로 인식할 수 없어 오류를 발생시킵니다.
이 오류는 주로 다음과 같은 상황에서 발생합니다: 함수의 리턴값이 None
인데 그것을 다시 호출하려 했을 때, 함수 이름과 동일한 이름으로 None
을 덮어썼을 때, 또는 변수의 초기화가 None
으로 되어 있는데 실수로 함수처럼 호출했을 경우입니다.
● 오류 발생 예시
def greet():
print("Hello")
greet = greet()
greet()
위 코드에서는 greet()
함수의 반환값이 None
이므로, greet
변수는 더 이상 함수가 아닌 None
을 가리키게 됩니다. 그 이후 greet()
를 다시 호출하려 하면서 오류가 발생합니다.
TypeError: 'NoneType' object is not callable
● 올바른 코드 예시
def greet():
print("Hello")
greet()
greet()
이 코드에서는 greet
함수가 제대로 호출되며, 변수에 덮어쓰기 없이 함수를 여러 번 사용할 수 있습니다.
● 자주 하는 실수
- 함수 이름을 같은 이름의 변수에 할당
None
이 저장된 객체에 괄호를 붙여 호출- 초기화되지 않은 변수에 괄호 사용
● 디버깅 팁
print(type(변수))
를 사용하여 현재 객체의 타입 확인- 함수 호출 시 변수 이름이 실제 함수인지 확인
- 함수 실행 결과가
None
이 아닌지 확인
● 결론
'NoneType' object is not callable
오류는 None
객체를 함수처럼 잘못 호출했을 때 발생합니다. 특히 함수 호출 결과를 변수에 저장하는 경우, 원래 함수 이름이 덮어쓰여 오류를 일으킬 수 있으므로 변수명 관리에 주의하고, 함수와 함수 호출의 구분을 명확히 이해하는 것이 중요합니다.
728x90