unbundlocalerror:赋值Python之前引用的局部变量

2024-04-29 07:52:53 发布

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

我在“def”函数上遇到了问题。我知道这个问题已经被问过了,但是答案并不能让我满意,我也不知道如何将它应用到我的代码中。我正在尝试用Python制作一款广受欢迎的游戏2048。基本上,当我定义使整个电路板向左移动的函数时,它会在赋值之前引用错误:unbundlocalerror:local变量。似乎我必须定义变量“bone”和“btwo”在某个不全局的地方。但我还没想好如何让它发挥作用。在我的moveleft()函数中设置参数不起作用,例如moveleft(bone,btwo)。所以我已经没有办法了。

现在,我将包含整个代码,所有的代码都被注释掉了,但我认为问题在于我在哪里定义了moveleft()函数。此外,如果有任何突出的愚蠢的代码位,请告诉我。另外,尽量保持简单,我对编程及其相关的短语和术语都是垃圾。这只是我第三次尝试代码。

我知道我要求很多,但我真的非常感谢你的帮助。

代码: http://pastebin.ca/2824228

最小化版本:

bone, btwo = 1, 2

def move_left():
    if bone == 1: print("bone is 1")
    if btwo == 2: print("btwo is 2")

    btwo = 3 
    bone = 2 

move_left()

Tags: 函数答案代码游戏moveif定义is
1条回答
网友
1楼 · 发布于 2024-04-29 07:52:53

如果要将写入函数中的全局变量,则需要显式地说您引用的是全局变量。所以把它作为函数的第一行:

global bone, btwo, bthree, bfour, bfive, bsix, bseven, beight, bnine

为什么不使用列表而不是定义9个变量呢?

相关问题 更多 >