python - 将用户输入设置为实例

时间:2017-04-25 03:02:03

标签: python class input

我想要一个用户可以使用input()语句访问的实例。 这是我的三个实例

water1 = waterType("squirtle", 50)
grass1 = grassType("bulbasaur", 50)
fire1 = fireType("charmander", 50)

这就是我的意思

class waterType(Pokemon):
  """creates a water pokemon"""
  pokemon_type = "water"
  damage = 10
  def __init__(self, name, hp):
    self.name = name
    self.hp = hp
  def growl(self):
    print("Splish Splosh")
  def attack(self):
    enemy = input("Who do you want to attack?")  <--- over here, I would enter "fire1"
    """attribute error occurs here"""
    if (enemy.pokemon_type == "fire"):
      global damage
      water1.damage = water1.damage*2
      enemy.hp = enemy.hp - water1.damage
      return enemy.hp
      print ("It was super effective!")
      print (enemy.hp)

如果我把所有的&#34;敌人&#34;并用&#34; fire1&#34;替换它,一切都很完美。但是,我需要手动输入每个fire-type实例。

如果无法为输入分配实例,有没有办法修复我的代码?

1 个答案:

答案 0 :(得分:1)

现在发生的事情是你将enemy分配给字符串&#34; fire1&#34;而不是变量。

这可以这样实现:

enemy = eval(input("Who do you want to attack?"))

然后应该引用名为&#39; fire1&#39;的实际对象。如果您需要进一步的帮助,请告诉我们!