Однако, когда я назначаю эти функции словарю, он вызывает и использует их, давая вам каждый предмет в игре. Я протестировал каждый фрагмент кода, использующий эти функции, поэтому точно знаю, что именно в этом причина. Более того, у меня уже была эта проблема несколько раз, поэтому я уверен, что именно это и происходит.
(Изменить: чтобы уточнить, существует отдельный список с приобретенными предметами, который пуст, поскольку так и должно быть. Добавляются эффекты каждого элемента, но не сам элемент, что доказывает, что это является причиной ошибки)
Это словарь элементов:
Код: Выделить всё
items = {"Damage Stone": damageStone(player), "Health Stone": healthStone(player), "Burn": burn(player), "Poison": poison(player), "Freeze": freeze(player)}
Есть ли способ предотвратить вызов функций, назначенных этому списку?< /p>
Примечания:
Очевидно, я мог бы написать раздел кода, который отменяет эффект каждого элемента, однако это не оптимально, поскольку количество элементов рост станет очень неприятным.
Лямбда-функции имеют те же проблемы и имеют ту же проблему.
Подробнее здесь: https://stackoverflow.com/questions/792 ... a-dictiona