@kyklaed

Как правильно сформировать?

Всем привет! подскажите пожалуйста каким способом можно тут решить проблему ? не хочется делать большое дерево из if elif
думал можно решить проблему с помощью словаря но, self в словаре уже видимо понимает как вызов, как по другому это сформировать ?

actdam = {1: self.damagetohead, 2: self.damagetobody, 3: self.damagetoheand, 4: self.damagetolegs}
getdam = {1: self.get_damagetohead, 2: self.get_damagetobody, 3: self.get_damagetoheand, 4:self.get_damagetolegs}
variant = input("= ")
    if variant in actdam.keys():
        actdam[variant]()
        damage_hero = getdam[variant]()
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@fireSparrow
У вас в коде две ошибки.

Во-первых, перед if не нужен отступ.

Во-вторых, нужно либо вводимое число приводить к int
variant = int(input("= "))

либо в исходных словарях ключи оформить как строки (обратите внимание на кавычки)
actdam = {'1': self.damagetohead, '2': self.damagetobody, '3': self.damagetoheand, '4': self.damagetolegs}


И ещё - когда спрашиваете совета, подробно объясняйте, в чём состоит проблема.
Если программа демонстрирует не такое поведение, какого вы ожидали - подробно описывайте, чем отличается реальность от вашего ожидания.
Если программа выдаёт ошибку - копируйте полный текст ошибки.

В противном случае многие просто не будут разбираться в вашем вопросе.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы