Цикл срабатывает 117 раз вместо одногоPython

Программы на Python
Anonymous
Цикл срабатывает 117 раз вместо одного

Сообщение Anonymous »

У меня есть этот метод:

Код: Выделить всё

    def apply_selected(self, paths: list[str], func):
print(paths)
for p in paths:
f = self._files.get(Path(p))
print("1")
if f:
print("2")
func(f)
И функция не применялась (не доходила до «2»).
В итоге я обнаружил, что она повторялась 117 раз. В путях только один элемент. Я знаю, потому что print(paths) напечатал путь к файлу один раз, а затем продолжил печатать 1 117 раз.
Вот полный стек вызовов:

Код: Выделить всё

add_thumbnail
был вызван, выглядит так:

Код: Выделить всё

    def add_thumbnail(self, files, thumbnail):
print("0")
print(files)
self.apply_selected(files, lambda f: f.add_cover_art(thumbnail))
затем он перешел к apply_selected (выше). Добавить_cover_art так и не удалось.
Вывод выглядит так:

Код: Выделить всё

0
filename
filename
1
1
1
1
1
... (112 more times)
Где я ошибся?


Подробнее здесь: https://stackoverflow.com/questions/798 ... ad-of-once

Вернуться в «Python»