如果g==0:UnboundLocalError:赋值前引用了局部变量“g”

2024-10-01 05:03:31 发布

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

我主持了一个在python上运行的多人游戏,我想以这样一种方式编辑脚本:当我加入一个显示我正在玩的消息时,它会显示在每个人的屏幕上。我能够做到这一点,但信息显示在每场比赛的开始,我试图解决它,但我得到了一个问题。 这是我要编辑的python脚本:

def onPlayerJoin(self,player):
    'Called for all new bs.Players (including the initial set of them).'
    if player.getName(full=True,icon=False) == "AwesomeLogic":
        if g == 0:
            bs.screenMessage("AwesomeLogic is playing")
            g = 1


def onPlayerLeave(self,player):
    'Called when a player is leaving the activity.'
    g = 0

但这给了我一个错误:

 if g == 0: UnboundLocalError: local variable 'g' referenced before assignment

谁能告诉我我做错了什么吗?你知道吗


Tags: theself脚本游戏消息编辑ifbs
1条回答
网友
1楼 · 发布于 2024-10-01 05:03:31

了解变量范围:默认情况下,在函数中分配的所有变量(重新分配)都被视为局部变量。你的g就是这样,因此g被认为是局部的,在if g == 0:还没有定义。你知道吗

可以使用global gg定义为函数中的全局变量,但强烈建议不要使用全局变量。。。你知道吗

相关问题 更多 >