Python棋盘游戏中的错误消息 - 定义全局变量

时间:2011-05-30 07:50:31

标签: python error-handling grid

嘿,我正在使用python进行棋盘游戏,我在使用错误时遇到了一些麻烦

例如:

ERROR_MOVE_CANT = "Error: %s %s can't move in direction %s" %(player, piece, direction)

当我尝试在我的程序中稍后提出此错误时,我使用:

if board[newch[1]][newch[0]] != '.':
    return ((ERROR_MOVE_CANT)%(player, piece, direction))

我收到错误"NameError: global name 'player' is not defined"

我之前将'播放器'定义为“字母”或“数字”,但如何将其定义为全局变量?

2 个答案:

答案 0 :(得分:0)

全球只是最后看的地方;您可能希望在使用它时将其设为局部变量,或者如果它是实例变量则正确引用它:self.player

答案 1 :(得分:0)

您可能在函数内部设置了错误消息,创建了局部变量而不是全局变量:

def f():
    ERROR = 17
    # this variable is local to f

def g():
    global ERROR
    ERROR = 17
    #now the ERROR in this function is the global one.

(顺便说一句,在使用全局变量之前要三思而后行,它们很可能不是解决问题的最简洁的解决方案。)