ValueError:无法解包的值太多(预期为4),但是有四个

时间:2018-08-14 19:20:20

标签: python-3.x valueerror

在我开始之前,我想说我是编码的新手,所以,如果我的问题有一个我看不见的简单答案,那么,你知道为什么。无论如何,这是产生错误的部分:

class_, weapon, rogue_wep, race = class_selection(class_, weapon, rogue_wep, race)

print(class_ + weapon + rogue_wep + race)

现在,当我向我解释此值错误时,我理解为当您在一侧比另一侧拥有更多的变量时,例如:

a, b, c, = example_func(a, b, c, d)

这将是一个错误,因为右侧的变量太多,而左侧的却很丰富。好吧,在我的情况下,四个变量被打包成四个变量。 (需要注意的是:class_已经被定义为它将被设置为的东西,但是在我的测试中,这不会产生此错误。)

整个游戏的代码:https://pastebin.com/uUVwwJBb

1 个答案:

答案 0 :(得分:0)

函数class_selection仅返回一个变量:__class 所以你应该做:

class_ = class_selection(class_, weapon, rogue_wep, race) print(class_ + weapon + rogue_wep + race)
print(class_ + weapon + rogue_wep + race)

如果要4个值,class_selection应该返回它们:

return class_, weapon, rogue_wep, race

编辑: 阅读代码后,我认为您需要阅读python中的全局变量。发生的情况是,在函数内部分配的值未分配给您所捍卫的全局变量。为此,您需要执行以下操作:

global x
x = "some value"