Spyder错误:' int'对象不可调用,但在不同的IDE中没有错误

时间:2018-04-25 08:01:08

标签: python spyder python-idle

我有这个奇怪的问题,我需要帮助。我有这个代码我希望在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上运行代码,没有错误。

有人可以告诉为什么会发生这种情况!?

3 个答案:

答案 0 :(得分:1)

当您有一个整数的对象时会发生此错误,但您的代码会尝试使用它,就好像它是一个函数一样。例如:

  • 您正在使用一个函数,该函数期望另一个函数作为其参数之一,但您传递了整数,或者
  • 您通过为同一名称指定一个整数值来覆盖函数。

这里的第一个看起来不是问题,所以也许你不小心覆盖了你正在使用的一个功能?

>>> 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中,您可以在变量资源管理器标签中进行检查,右键单击它并选择Remove,或在Python控制台中键入(例如)del(str)删除错误的作业。

答案 1 :(得分:1)

Spyder保存您之前创建的变量。您可以在“变量资源管理器”标签中检查这些创建的变量。

如果那里存在任何变量,并且您在任何python程序中都使用与函数相同的变量。根据变量资源管理器中存在的变量,它将引发错误“ int对象不可调用”或“'str'对象不可调用”。

解决方案:

  1. 只需在变量浏览器中右键单击即可删除此类变量

  2. 在控制台中输入del(variable_Name)。例如:del(len)或del len

请检查屏幕截图-spyder IDE:

enter image description here

答案 2 :(得分:0)

我也使用Spyder运行它,它运行良好。你在使用Python3吗?

相关问题