Typeerror nonetype object is not callable

Юзаю 3.6.5 версию python’a Собстна вот код

Выбрасывает ошибку line 12, in function_which_want_to_be_wrapped() TypeError: ‘NoneType’ object is not callable

1 ответ 1

Не оттуда возвращаете результат, в декорирующей функции.

Пользователь вводит переменные (query, where) для поиска по локальной базе данных, код ищет ResID в базе с помощью переданных переменных, и выводит пользователю полученную информацию, Так получается, что в базе при поиске могут выпасть не один ResID, и пользователю даётся краткая информация о записи в базе данных, и просит выбрать нужную, и в то время как если при вводе переменных выдаётся 1 ResID, всё проходит идеально, и запись показывается, но если выпадает больше 1 записи, Python признает в функции (func4) "NoneType" object, и выпадает исключение, в чём проблема так и не понял, экспериментальным путём узнал что func4 и в случае если 1 ResID, и если больше одного является — NoneType, но в 1-ом случае он успешно выполняется, а во 2-ом уже нет, в чём проблема так и не пойму, помогите!

Вероятная часть кода с ошибкой:

Вот такой Traceback возвращает:

  • Вопрос задан более года назад
  • 948 просмотров

Никогда ботов не писал, но попробую направить:

Вот тут, насколько я понял из документации, вторым аргументом идет callback. Судя по всему, это должен быть указатель на функцию, которая будет запущена, когда придет сообщение. Если вы указываете функцию так, как указали, вы передаете туда возвращаемое значение, а в вашем случае оно будет None, поскольку она ничего не возвращает, соответственно бот будет пытаться запустить None и вы получите ту ошибку, которую получили.

Если загляните вот сюда (ссылка на Github бота), то увидите,

Читайте также:  Afuwin error loading driver что делать

Тут, во-первых, устанавливается callback строчкой а во-вторых сама функция process_name_step принимает в качестве аргумента message, то есть сообщение, которое было прислано боту, а дальше из него уже берется вся информация.

Короче, скорее всего, вам нужно в функции func0, как только поняли, что ID больше одного, отправлять пользователю сообщения с информацией о найденных ID и ждать ответа. Когда ответ придет, сработает callback IMP0 с аргументом message, из которого станет понятно, что именно хочет пользователь, а дальше ваша стандартная обработка ответа.

Добрый вечер.
Хотелось бы узнать, как избавиться от данной ошибки.

В этой строке возникает ошибка, в данной переменной находится html код. Происходит ошибка:

TypeError: ‘NoneType’ object is not callable

2 ответа 2

Надо верить Питону. Ваш объект itemDesc имеет тип NoneType. Для него нет метода replace Вы пишите, что в переменной находится html код, но видимо это не так. Проверяйте тип и действуйте в зависимости от результата.

Уже разобрался, понимал, что нужно переменную объявить строкой, но вот такой вариант почему-то не работал

Подсказали вот так:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками python или задайте свой вопрос.

Похожие

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.1.17.35809

Rate this post

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *