2017-04-25 11 views
0

input()ステートメントを使用してアクセスできるインスタンスが必要です。ここで がpython - ユーザー入力をインスタンスに設定する

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

は、ここで私はすべての「敵」を取ると「FIRE1」とそれを交換した場合、私は

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) 

を意味するものだ、私の3つのインスタンスが、すべてが完璧に動作します。しかし、私は手動ですべての単一火災型のインスタンスを入力する必要があります。

インスタンスに入力を割り当てることができない場合は、コードを修正する方法はありますか?

答えて

1

現在、変数ではなく文字「fire1」にenemyを割り当てています。

これは、として達成することができる:

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

これは次いで、 'FIRE1' と呼ばれる実際のオブジェクトを参照しなければなりません。さらなる助けが必要な場合はお知らせください。

+1

ありがとう、これは私が欲しかったものです! – Coolunized5

+0

問題はありません、そして幸運! – Windmill

関連する問題