我是python的新手。我收到了错误
while not cls.isFilled(row,col,myMap):
TypeError: 'bool' object is not callable
请您指导如何解决此问题? 第一个“if”检查没问题,但“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
答案 0 :(得分:44)
你做cls.isFilled = True
。这会覆盖名为isFilled
的方法,并将其替换为值True。这种方法现在已经消失,你不能再打电话了。因此,当您再次尝试再次调用时,会出现错误,因为它不再存在。
解决方案使用的变量名称与方法名称不同。
答案 1 :(得分:0)
实际上你可以通过以下步骤修复它 -
cls.__dict__
{'isFilled':True}
或{'isFilled':False}
,具体取决于您设置的内容。del cls.__dict__['isFilled']
在这种情况下,我们删除覆盖BrenBarn提到的方法的条目。