Как уже отмечали другие, ваша проблема в том, что fileList - это переменная класса, которую вы изменяете.
Однако стоит отметить еще одну потенциальную ловушку в вашем коде, которая может привести к аналогичной проблеме (хотя это не так в вашем конкретном примере):
def __init__(self, rootDir, ignoreList=[]):
Остерегайтесь передачи изменяемых параметров (таких как этот список) в качестве аргументов по умолчанию. Список создается только один раз (когда вы определяете функцию __init__
. Это означает, что все экземпляры класса, созданные по умолчанию, будут использовать один и тот же список.
В вашем примере список никогда не изменяется, так что это не будет иметь никаких последствий, но если (как вы делаете для fileList) вы добавите self.ignoreList, то это затронет все такие экземпляры, что приведет к аналогичной проблеме тому, кого вы видите.
Это очень распространенная ошибка для начинающих - чтобы избежать этого, неплохо написать такой код, например:
def __init__(self, rootDir, ignoreList=None):
if ignoreList is None:
ignoreList = [] # This will create a new empty list for every instance.