Python 类型错误:';布尔';对象不可调用

Python 类型错误:';布尔';对象不可调用,python,Python,我是python的新手。我犯了个错误 while not cls.isFilled(row,col,myMap): TypeError: 'bool' object is not callable 你能告诉我如何解决这个问题吗? 第一个“如果”检查正常,但“while not”有此错误 def main(cls, args): ... if cls.isFilled(row,col,myMap): numCycles = 0

我是python的新手。我犯了个错误

while not cls.isFilled(row,col,myMap):
TypeError: 'bool' object is not callable
你能告诉我如何解决这个问题吗? 第一个“如果”检查正常,但“while not”有此错误

def main(cls, args):
        ...
        if cls.isFilled(row,col,myMap):
            numCycles = 0

        while not cls.isFilled(row,col,myMap):
            numCycles += 1


def isFilled(cls,row,col,myMap):
        cls.isFilled = True
        ## for-while
        i = 0
        while i < row:
            ## for-while
            j = 0
            while j < col:
                if not myMap[i][j].getIsActive():
                    cls.isFilled = False
                j += 1
            i += 1
        return cls.isFilled
def main(cls,args):
...
如果cls.isFilled(行、列、myMap):
numCycles=0
而不是cls.isFilled(行、列、myMap):
numCycles+=1
def已填充(cls、row、col、myMap):
cls.isFilled=True
##暂时
i=0
而我在世界其他地区:
##暂时
j=0
而j
您可以
cls.isFilled=True
。这将覆盖名为
isFilled
的方法,并将其替换为值True。这个方法现在已经不存在了,你不能再调用它了。所以当你再次尝试调用它时,你会得到一个错误,因为它已经不存在了


解决方案是为变量使用与方法不同的名称。

实际上,您可以通过以下步骤修复它-

  • Do
    cls.\uuuu dict\uuuu
  • 这将为您提供字典格式输出,其中将包含
    {'isFilled':True}
    {'isFilled':False}
    ,具体取决于您设置的内容
  • 删除此条目-
    del cls.\uuu dict\uuu['isFilled']
  • 您现在可以调用该方法了

  • 在本例中,我们删除了覆盖BrenBarn提到的方法的条目

    如果有人在Flask登录时遇到类似错误:
    当前用户。是否经过身份验证():TypeError:'bool'对象不可调用
    请参考。感谢naXa,我想说,您给出的答案通常对任何错误都有效,例如:
    是否经过身份验证():TypeError:'bool'对象不可调用
    ,不仅在烧瓶中,而且在Django中