Есть ли способ остановить вызов функции при присвоении словарю?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ остановить вызов функции при присвоении словарю?

Сообщение Anonymous »

Я создаю игру, используя pygame, и пытаюсь добавить в нее элементы. У меня есть функция для каждого элемента, которую нужно вызывать, когда вы его получаете (эта часть работает хорошо).
Однако, когда я назначаю эти функции словарю, он вызывает и использует их, давая вам каждый предмет в игре. Я протестировал каждый фрагмент кода, использующий эти функции, поэтому точно знаю, что именно в этом причина. Более того, у меня уже была эта проблема несколько раз, поэтому я уверен, что именно это и происходит.
(Изменить: чтобы уточнить, существует отдельный список с приобретенными предметами, который пуст, поскольку так и должно быть. Добавляются эффекты каждого элемента, но не сам элемент, что доказывает, что это является причиной ошибки)
Это словарь элементов:

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

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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