TypeError: 'bool' object is not callable python

TypeError: 'bool' object is not callable python

每当我尝试 运行 这段代码时,我都会收到 TypeError: 'bool' object is not callable。 我如何修复此代码以使其在我尝试打印 bike.blue() 时得到一个布尔值?

class Colour():
    def __init__(self):
        self.blue = False

    def blue(self) -> bool:
        return self.blue

bike = Colour()
print(bike.blue())

在您的 __init__ 方法中,您在实例上创建了一个属性 blue。这会隐藏在您的 class 上定义的方法 blue(),因此您不能再将该方法作为实例的属性进行访问。 self.blue() 则与 False() 相同,您会明白为什么会出现错误。

将实例属性命名为其他名称,例如 _blue.

当你定义class时,self.blue是一个函数。但是当你的 __init__ 运行时,你擦除函数,并分配一个布尔值。在那之后,obj.blue returns 布尔值,而不是函数。

给一个 class 变量一个与成员函数相同的名字从来都不是一个好主意。