Python 中TypeError: 'bool' object is not callable 错误
当我们尝试将布尔值(True 或 False)作为函数调用时,会出现 Python“TypeError: 'bool' object is not callable”。 要解决该错误,请更正分配并解决函数名和变量名之间的任何冲突。
看下面的代码
example = True
# ⛔️ TypeError: 'bool' object is not callable
example()
我们必须追踪变量在何处分配了布尔值(True 或 False)并更正对函数或类的分配,或者删除括号。
确保我们没有覆盖内置的 bool()
函数。
# 👇️ overrides built-in bool() function
bool = True
# ⛔️ TypeError: 'bool' object is not callable
print(bool('hello'))
我们覆盖内置的
bool
函数,将其设置为布尔原语,并尝试将其作为函数调用。
要解决该错误,请确保重命名变量并重新启动脚本。
# ✅ Not overriding built-in bool() anymore
my_bool = True
print(bool('hello'))
确保我们没有尝试调用两次返回布尔值的函数。
def is_subscribed():
return True
# ⛔️ TypeError: 'bool' object is not callable
is_subscribed()() # 👈️ remove extra set of parentheses
错误的另一个常见原因是函数和变量同名。
def example():
return 'hello world'
example = True
# ⛔️ TypeError: 'bool' object is not callable
example()
示例变量隐藏了同名函数,因此当我们尝试调用该函数时,我们实际上最终调用了该变量。
重命名变量或函数可以解决错误。
当我们有一个类方法和一个同名的类属性时,也会导致错误。
class Employee():
def __init__(self, is_subscribed):
self.is_subscribed = is_subscribed
# 👇️ same name as class variable
def is_subscribed(self):
return self.is_subscribed
emp = Employee(False)
# ⛔️ TypeError: 'bool' object is not callable
print(emp.is_subscribed())
Employee
类有一个方法和一个同名的属性。
属性隐藏了方法,所以当我们尝试在类的实例上调用方法时,我们得到对象不可调用的错误。
要解决该错误,我们必须重命名类方法。
class Employee():
def __init__(self, is_subscribed):
self.is_subscribed = is_subscribed
def get_is_subscribed(self):
return self.is_subscribed
emp = Employee(False)
print(emp.get_is_subscribed()) # 👉️ False
重命名该方法后,我们将能够毫无问题地调用它。
总结
当我们尝试将布尔值(True
或 False
)作为函数调用时,会出现 Python“TypeError: 'bool' object is not callable”。 要解决该错误,请更正分配并解决函数名和变量名之间的任何冲突。
相关文章
Python for 循环中的下一项
发布时间:2023/04/26 浏览次数:179 分类:Python
-
本文讨论了 Python 中的 for 循环以及如何通过使用 for 循环和示例来跳过列表的第一个元素。
Python While 循环用户输入
发布时间:2023/04/26 浏览次数:148 分类:Python
-
我们可以在 while 循环中使用 input() 函数来输入数据,直到在 Python 中满足某个条件。
在 Python 中将整数转换为罗马数字
发布时间:2023/04/26 浏览次数:87 分类:Python
-
本篇文章将介绍在 Python 中将整数转换为罗马数字。以下是一个 Python 程序的实现,它将给定的整数转换为其等效的罗马数字。
在 Python 中将罗马数字转换为整数
发布时间:2023/04/26 浏览次数:144 分类:Python
-
本文讨论如何在 Python 中将罗马数字转换为整数。 我们将使用 Python if 语句来执行此操作。 我们还将探讨在 Python 中将罗马数字更改为整数的更多方法。
在 Python 中读取 gzip 文件
发布时间:2023/04/26 浏览次数:70 分类:Python
-
本篇文章强调了压缩文件的重要性,并演示了如何在 Python 中使用 gzip 进行压缩和解压缩。
在 Python 中锁定文件
发布时间:2023/04/26 浏览次数:141 分类:Python
-
本文解释了为什么在 Python 中锁定文件很重要。 这讨论了当两个进程在没有锁的情况下与共享资源交互时会发生什么的示例,为什么在放置锁之前知道文件状态很重要,等等
在 Python 中将 PDF 转换为文本
发布时间:2023/04/26 浏览次数:196 分类:Python
-
在本教程中,我们将学习如何使用 Python 使用 PyPDF2、Aspose 和 PDFminer 将 PDF 文档转换为文本文件。
在 Python 中创建临时文件
发布时间:2023/04/26 浏览次数:53 分类:Python
-
本文讲解了tempfile库函数的四个子函数:TemporaryFile、NamedTemporaryFile、mkstemp、TemporaryDirectory。 每个部分都提供了适当的程序,以简化对概念的理解。