原文: Typeerror: str object is not callable – How to Fix in Python

每种编程语言都有一些具有特定功能和意义的关键词。

用这些关键字来命名你的变量或函数,很可能会引起错误。我们将在本文中讨论其中一种情况--Python 中的错误 TypeError: 'str' object is not callable

TypeError: 'str' object is not callable 错误主要在以下情况下发生:

  • 你把一个名为 str 的变量作为参数传给 str() 函数。
  • 当你像调用函数一样调用一个字符串时。

在接下来的章节中,你会看到引发 TypeError: 'str' object is not callable 错误的代码例子,以及如何解决这些问题。

例子 #1 - 如果你在 Python 中使用 str 作为变量名会发生什么

在本节中,你将看到当你用一个名为 str 的变量作为 str() 函数的参数时会发生什么。

str() 函数被用来将某些数值转换成字符串。str(10) 将整数 10 转换为字符串。

下面是第一个代码例子:

str = "Hello World"

print(str(str))
# TypeError: 'str' object is not callable

在上面的代码中,我们创建了一个变量 str,其值为 “Hello World”。我们将该变量作为参数传递给 str() 函数。

结果出现了 TypeError: 'str' object is not callable 报错。发生这种情况是因为我们使用的变量名已经被编译器识别为不同的东西。

为了解决这个问题,你可以把变量重命名为一个不是 Python 中预定义关键字的东西。

这里有一个快速解决这个问题的方法:

greetings = "Hello World"

print(str(greetings))
# Hello World

现在代码可以完美运行了。

例子 #2 - 如果你在 Python 中像调用一个函数一样调用一个字符串会发生什么

在 Python 中像调用一个函数一样调用一个字符串会引发 TypeError: 'str' object is not callable 错误。

下面是一个例子:

greetings = "Hello World"

print(greetings())
# TypeError: 'str' object is not callable

在上面的例子中,我们创建了一个名为 greetings 的变量。

当把它打印到控制台时,我们在变量名后面使用了小括号--这是调用函数时使用的语法:greetings()

这导致编译器抛出 TypeError: 'str' object is not callable 错误。

你可以通过删除括号轻松解决这个问题。

这对其他所有不是函数的数据类型都是一样的。给它们加上小括号会引起同样的错误。

因此,我们的代码应该这样运行:

greetings = "Hello World"

print(greetings)
# Hello World

总结

在这篇文章中,我们讨论了 Python 中的 TypeError: 'str' object is not callable 错误。

我们谈到了为什么会发生这个错误以及如何解决它。

为了避免在你的代码中出现这个错误,你应该:

  • 避免用 Python 中内置的关键字来命名你的变量。
  • 永远不要像调用函数一样通过添加括号来调用你的变量。

Happy coding!