Python报错”TypeError: ‘str’ object is not callable “怎么处理?

  • Post category:Python

当Python代码出现 “TypeError: ‘str’ object is not callable” 报错时,通常表示你正在试图调用一个字符串对象(即 str)作为一个函数、方法或类。这个错误通常是由于以下原因导致的:

  1. 内置函数/方法名重复了变量名:

如果你在代码中给变量命名与内置的函数或方法名相同(例如,使用 “str” 命名字符串变量),那么当你尝试调用它时,Python 将无法识别变量名并且抛出一个 “TypeError: ‘str’ object is not callable” 的错误。解决方法:请检查变量名是否重复了内置函数或方法名,如果是,及时更改变量名。

  1. 意外省略了 ():

如果在调用函数或方法时意外省略了函数或方法名后面的括号 (),例如:str_variable = “Hello World”,print str_variable(),则Python将无法理解为何将一个字符串作为方法调用,因此会产生 “TypeError: ‘str’ object is not callable” 的错误。解决方法:请检查是否遗漏了括号 ()。

  1. 赋值给字符串变量名称,再尝试调用字符串:

如果在字符串变量名称后面加上括号尝试调用它,例如:str_variable = “Hello World”,str_variable(),则Python无法理解为什么将一个字符串作为函数进行调用。解决方法:请检查是否正确调用函数,如果有需要调用函数的地方,请使用函数名、方法名等来进行函数调用。

下面是几个实例来帮助你理解并解决这个错误的问题:

实例1:变量与内置函数/方法名称重复

str = "Hello, World!"
print(str.lower())

运行结果如下所示:

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

上面的错误是因为变量名 str 与内置函数 str 函数名相同,从而导致Python将字符串对象认为是函数而产生错误。

解决方法:更改变量名或将其从内置函数/方法中分离出来。

实例2:意外省略了 ()

str_variable = "Hello World"
print(str_variable)
print(str_variable())

运行结果如下所示:

Hello World
Traceback (most recent call last):
  File "<module1>", line 3, in <module>
TypeError: 'str' object is not callable

上面的错误是由于在函数调用时意外省略了函数名后面的 (),导致 Python 无法理解为何将一个字符串作为方法调用并产生报错。

解决方法:在函数调用时,确保带上括号 ()。

实例3:赋值给字符串变量名称,再尝试调用字符串

str_variable = "Hello World"
str_variable()

运行结果如下所示:

Traceback (most recent call last):
  File "<module1>", line 2, in <module>
TypeError: 'str' object is not callable

上面的错误是由于字符串变量无法被调用,因为它不是一个方法或函数。

解决方法:如果你需要调用一个方法或函数,请使用函数名来进行函数调用。

综上所述, “TypeError: ‘str’ object is not callable” 这个错误通常与 Python 的函数调用相关。为避免这种类型错误,请仔细检查你的代码并确保你了解每一行代码在干什么。