38

私は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
4

2 に答える 2

74

あなたはそうしますcls.isFilled = True。これにより、呼び出されたメソッドが上書きisFilledされ、値 True に置き換えられます。そのメソッドはなくなり、もう呼び出すことはできません。そのため、もう一度呼び出そうとすると、もう存在しないため、エラーが発生します。

解決策は、メソッドとは異なる名前を変数に使用することです。

于 2012-09-27T05:01:04.227 に答える