中的另一個函數調用。我正在創建一個程序,遇到了一個讓我困惑的問題,以及對基本代碼的理解(或者我對視力的理解)。如果語句值在循環中沒有改變,如果從python
根據我這個代碼應該打印出來
測試
立即在程序啓動,然後當EXT()是由定時器稱爲線程循環變量會更改爲False,實質上在if語句中返回false並且不繼續打印出'Test'。
但即使ext()被調用(我測試了這個),if語句被調用並且循環不會更改爲False。
from threading import Timer, Thread
from time import sleep
loop = True
def hello():
while True:
if loop == True:
print('Test')
sleep(0.5)
def ext():
loop = False
th = Thread(target=hello)
th.start()
t = Timer(5, ext())
t.start()
請幫忙,因爲我一直堅持了幾個小時。
'ext'中的'loop'變量在本地範圍內。你可以考慮使用'global'' –
確保你通過'global loop'使用全局變量,然後'loop = False'。 – Li357
您必須將該變量設爲全局變量。檢查[this](http://stackoverflow.com/questions/423379/using-global-variables-in-a-function-other-than-the-one-that-created-them) – MikeVelazco