python将用户输入设置为实例

2024-10-02 08:16:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要一个实例,用户可以使用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)

如果我把所有的“敌人”换成“火1”,一切都会很完美。但是,我需要手动输入每个fire类型实例

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


Tags: 实例nameselfinputdeftypehpprint
1条回答
网友
1楼 · 发布于 2024-10-02 08:16:31

现在发生的事情是将enemy赋值给字符串“fire1”,而不是变量

这可以通过以下方式实现:

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

然后应该引用名为“fire1”的实际对象。如果你需要进一步的帮助,请告诉我

相关问题 更多 >

    热门问题