Ошибка Spyder: объект 'int' не вызывается, но нет ошибки в другой IDE - PullRequest
0 голосов
/ 25 апреля 2018

У меня странная проблема, с которой мне нужна помощь. У меня есть этот код, который я хочу запустить в Spyder, но получаю сообщение об ошибке

TypeError: объект 'int' не может быть вызван.

s ='abcdefgbobaaaaabob'
end = 3
bobs = 0
for i in range(len(s)):
    finder = s[i:end]
    if finder == 'bob':
        bobs += 1
    end += 1
print('Number of times bob occurs is: '+ str(bobs))

Странная часть в том, что когда я запускаю тот же код в IDLE, он работает нормально и дает нужные мне результаты. Я даже пытался запустить код на pythontutor.com, без ошибок.

Может кто-нибудь сказать, почему это происходит!?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Эта ошибка возникает, когда у вас есть объект, который является целым числом, но ваш код пытается использовать его, как если бы это была функция.Например:

  • вы используете функцию, которая ожидает другую функцию в качестве одного из аргументов, но вместо этого вы передали ей целое число, или
  • вы переопределили функцию, назначивцелочисленное значение с тем же именем.

Не похоже, что первая из них - проблема здесь, так что, возможно, вы случайно переопределили одну из функций, которые используете?

>>> str(3)
'3'
>>> str = 17
>>> str(3)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not callable

В Spyder вы можете проверить это на вкладке Variable Explorer , либо щелкнуть по ней правой кнопкой мыши и выбрать Remove, либо ввести (например) del(str) в консоли Python, чтобы удалитьнеправильное назначение.

0 голосов
/ 25 апреля 2018

Я тоже запускал его с помощью Spyder, и он работал хорошо.Вы используете Python3?

...