每种编程语言都有一些具有特定功能和含义的关键词。
用这些关键字命名你的变量或函数,很可能会引起错误。我们将在这篇文章中讨论其中一种情况--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中内置的关键字来命名你的变量。
- 不要像函数一样通过添加括号来调用你的变量。
编码愉快!