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 变量一个与成员函数相同的名字从来都不是一个好主意。
每当我尝试 运行 这段代码时,我都会收到 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 变量一个与成员函数相同的名字从来都不是一个好主意。