Дополнительно
Python: Что означает "TypeError 'xxx' object is not callable"?
Как начинающий разработчик на Python я'много раз видел это сообщение об ошибке, появляющееся в моей консоли, но я'не совсем понимаю, что оно означает.
Может ли кто-нибудь сказать мне в общих чертах, какое действие приводит к этой ошибке?
36
5
Эта ошибка возникает, когда вы пытаетесь вызвать с помощью
()
объект, который не является вызываемым.Вызываемым объектом может быть функция или класс (реализующий метод
__call__
). Согласно Python Docs:Например:
x
не является вызываемым объектом, но вы пытаетесь вызвать его так, как будто он им является. Этот пример выдает ошибку:Для лучшего понимания того, что такое вызываемый объект прочитайте этот ответ в другом посте SO.
Это действие происходит, когда вы пытаетесь вызвать объект, который не является функцией, как, например,
()
. Например, это приведет к ошибке:Экземпляры классов также могут быть вызваны, если они определяют метод
__call__
.Одна из распространенных ошибок, вызывающих эту ошибку, - попытка поиска элемента списка или словаря, но использование круглых скобок вместо квадратных скобок, т.е.
(0)
вместо[0]
.Других ответов деталь причину ошибки. Возможная причина (для проверки) может быть ваш класс имеет переменную и метод с тем же именем, что тогда вы называете. Питон получает доступ к переменной как отзывной - с
()
.например, класс определяет самостоятельно.A
и
самостоятельно.а()`:Исключение возникает, когда вы пытаетесь вызвать не вызываемый объект. Вызываемыми объектами являются (функции, методы, объекты с
__call__
)Это просто означает, что что-то тут'т вызываемый объект