프로그래밍언어/파이썬[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