2017-03-08 16 views
0

私はいくつかの変数、playerHealthとogreHealthを持っています。"TypeError: 'int'オブジェクトは複数の変数ではありません

私は、定義された関数を使用して、他のものに従ってそれらを変更します。

便利なコード:

def attack(enemyHealth, playerHealth): 
while saveKeyp or place == 'b': 
    [ogreHealth, playerHealth] = attack(ogreHealth, playerHealth) 

私はここで間違って何をしているのですか?

+3

'attack'が整数を返した場合、複数の値に展開することはできません。 –

+2

「攻撃」とは何ですか?それは何を返すのですか? –

+0

変数リストの前後の '[...]'は意味は変えませんが(大部分)、必要ありません。 'foo()'がタプル内の2(またはそれ以上の)値を返す限り、 'x、y = foo(stuff)'で十分です。 – twalberg

答えて

0

attack機能が一つの値だけ戻っているように(あなたがattackのコードを示していないので)ジャン=フランソワ・ファーブルから推測して行く、それが見えます:一つだけの健康値なので

# guessing attack's implementation 
    return a_health_value 

をが返されているPythonは、そのオブジェクトを2つのヘルス値を取得するために反復処理することができないと不平を言っています。あなたの代わりに何をすべき:

return calculated_enemy_health, calculated_player_health 

を2つの値のタプルを返すことによって、Pythonはタプルを反復処理し、ogreHealthplayerHealthにそれらの値を割り当てることができるようになります。

+0

です。これはうまくいきました。私のコードでは、2つの値を別々のものとして返していました。ありがとう! –

関連する問題