2011-05-30 58 views
0

嘿,我正在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"

我之前已經將'player'定義爲「Letter」或「number」,但是如何將其定義爲全局變量?

+0

您應該刪除所有
並使用代碼格式化選項({}按鈕;)) – 2011-05-30 08:01:54

回答

0

全球只是最後看的地方;您可能希望在使用它時使其成爲局部變量,如果它是實例變量,則可以正確引用它:self.player

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. 

(順便說一下,三思而後他們極有可能是不爲您的問題提供最清潔的解決方案。)