Код: Выделить всё
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)
В итоге я обнаружил, что она повторялась 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))
Вывод выглядит так:
Код: Выделить всё
0
filename
filename
1
1
1
1
1
... (112 more times)
Изменить:
Я понял, я понимаю.
Вот self._files : self._files: dict[str, myFile] = {}
Я заменил print("1") на print(p), и думаю, "это очевидно".
print(p) выводит весь путь к файлу, по одному символу за раз.
Я забыл, что в Python создание параметра в виде списка абсолютно ничего не значит.
Подробнее здесь: https://stackoverflow.com/questions/798 ... ad-of-once
Мобильная версия