파이썬 초보 개발자로서 이 오류 메시지가 콘솔에 여러 번 표시되는 것을 보았지만 그 의미를 완전히 이해하지 못했습니다.
어떤 종류의 작업이 이 오류를 발생시키는지 일반적인 방법으로 알려주실 수 있나요?
이 오류는 ()
를 사용하여 호출 가능이 아닌 객체를 호출하려고 할 때 발생합니다.
호출 가능한 객체는 함수 또는 클래스(__call__
메서드를 구현하는)일 수 있습니다. 파이썬 문서]2에 따르면:
object.call(self[, args...]): 인스턴스가 함수로 "호출"될 때 호출됩니다.
예를 들어:
x = 1
print x()
'x'는 호출 가능한 객체가 아닌데 마치 호출 가능한 객체인 것처럼 호출하려고 합니다. 이 예제에서 오류가 발생합니다:
TypeError: 'int' object is not callable
호출 가능한** 객체가 무엇인지 더 잘 이해하려면 다른 SO 게시물에서 이 답변을 읽어보세요.
이 동작은 ()
와 같이 함수가 아닌 객체를 호출하려고 할 때 발생합니다. 예를 들어, 이 경우 오류가 발생합니다:
>>> a = 5
>>> a()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
클래스 인스턴스는 __call__
메서드를 정의하는 경우에도 호출할 수 있습니다.
이 오류를 일으키는 일반적인 실수 중 하나는 목록이나 사전 요소를 조회하려고 할 때 대괄호 대신 괄호(예: [0]
대신 (0)
)를 사용하는 것입니다.
다른 대답을 상세함을 오류의 원인이. (체크) 가 발생할 수 있는 그런 다음, 같은 이름의 변수 및 메서드는 클래스에 가능하다. 파이썬 액세스하며 비호환성의 호출 변수를 자랑하는 ' ()'.
예를 들어 'A 급 eventtest 셀프리아' 와 '셀프리아 ()'.
>>> class A:
... def __init__(self, val):
... self.a = val
... def a(self):
... return self.a
...
>>> my_a = A(12)
>>> val = my_a.a()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable
>>>