2017-10-04 4 views
-3
class Strength(State): 
    def run(self, gamedata): 
     print("You have 100 points to assign to your character.\n Start now to assign those Points to your characters strength, agility, speed and defense.") 
     strenghtwert = int(input("STRENGTH: >>")) 
     return AGILITY, gamedata, strenghtwert 

    def next(self, next_state): 
     if next_state == AGILITY: 
      return CreatePlayer.agility 

class Agility(State): 
    def run(self, gamedata,strenghtwert): 
     agilitywert = int(input("AGILITY: >>")) 
     return SPEED, gamedata, strenghtwert, agilitywert 

    def next(self, next_state): 
     if next_state == SPEED: 
      return CreatePlayer.speed 

Quand j'exécute cela, je reçois l'erreur: ValueError: too many values to unpack (expected 2). Je pense que l'erreur est dans return AGILITY, gamedata, strenghtwert dans run() dans la classe Strength.ValueError: trop de valeurs à déballer (expected 2) PYTHON

Une idée quel est le problème?

La dernière ligne exécutée avec succès est strenghtwert = int(input("STRENGTH: >>")) dans la même fonction.

+3

nous montrent la trace de la pile – acushner

+0

Montrez-nous comment vous appelez la fonction. – Antimony

Répondre

0

Sans plus d'informations telles que la façon dont l'appel a été fait, quels types certaines de ces variables sont, la trace de la pile de l'erreur, ou votre code complet.

Cette erreur se produit généralement lors d'une affectation multiple où vous n'avez pas assez d'objets à affecter aux variables ou si vous avez plus d'objets à affecter que de variables.

Si par exemple myfunction() renvoyait un iterable avec trois éléments au lieu des deux attendus, alors vous auriez plus d'objets que de variables à assigner.

def myfunction(): 
    return 'stuff', 'and', 'junk' 

stuff, junk = myfunction() 

Traceback (most recent call last): File "/test.py", line 72, in <module> stuff, junk = myfunction() ValueError: too many values to unpack (expected 2)

Cela fonctionne dans l'autre sens où vous avez plus de variables que les objets.

def myfunction(): 
    return 'stuff' 

stuff, junk = myfunction() 

Traceback (most recent call last): File "/test.py", line 72, in <module> stuff, junk = myfunction() ValueError: too many values to unpack (expected 2)