所以我有一個小型的python程序分佈在幾個類中。在我的主類中,我告訴我的標題屏幕類顯示,然後等待輸入。如果它得到的輸入是'q',它會回到我的主類,告訴它將停止標誌設置爲true。否則,它只是循環。在Python回調中設置變量
這是我給我的標題畫面回調:
def quit():
stopped = True
停止設置爲回調的假之外。回調已經很好地記錄下來,並且沒有問題,但它似乎在titlescreen中本地停止爲true,而不是主要。我可以通過創建一個類stopFlag並執行完全相同的操作來解決這個問題,除了在對象中。
我的問題是爲什麼我需要做一個新班級來做到這一點?有沒有一種方法可以在主體中設置一個全局標誌,這只是一個布爾值,而不會使對象脫離它?我怎樣纔能有布爾值的回調引用?
編輯:
我宣佈停止這樣的:
stopped = False
這裏是退出回調寄存器電話:
titleScreen.registerCallbackQuit(quit)
它看起來像:
def registerCallbackQuit(self, callback):
self.callbackQuit = callback
而且它要求退出它在用戶輸入中得到一個。
作業前的'全局停止',我猜。如果你把完整的代碼,我可以給你一個答案。 http://stackoverflow.com/questions/291978/short-description-of-python-scoping-rules – lolopop
假設'stopped = True'是在所有代碼中停止的唯一True賦值,添加'import pdb; pdb.set_trace ()'並且找出它從哪裏被調用。 –