例如:
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"
我之前将'播放器'定义为“字母”或“数字”,但如何将其定义为全局变量?
答案 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.
(顺便说一句,在使用全局变量之前要三思而后行,它们很可能不是解决问题的最简洁的解决方案。)