我直接在資料庫中更新變數(手動)。但是,while回圈中的代碼永遠不會更新變數,因為它處于回圈中,我想知道我應該怎么做才能獲得新值。
也許退出回圈并重新打開它?我嘗試過break,但它會關閉腳本。
import sqlite3
def read_data(data, table):
con = sqlite3.connect("settings.db")
cur = con.cursor()
read_data.row = cur.execute(f"SELECT {data} FROM {table}").fetchall()[0][0]
read_data("data", "eyes")
eyes = read_data.row
while True:
read_data("data", "eyes")
eyes_loop = read_data.row
if eyes_loop != eyes:
print("Eyes changed")
break
else:
print("Eyes not changed")
continue
uj5u.com熱心網友回復:
有很多事情不太對勁:
- 如果在函式內部建立連接,則應關閉連接。
- 您應該回傳值而不是在范圍之外覆寫它們。可能會出現令人討厭的副作用。
import sqlite3
def read_data(data, table):
con = sqlite3.connect("settings.db")
cur = con.cursor()
data = cur.execute(f"SELECT {data} FROM {table}").fetchall()[0][0]
con.close()
return data
eyes = read_data("data", "eyes")
while True:
eyes_loop = read_data("data", "eyes")
if eyes_loop != eyes:
print("Eyes changed")
break
else:
print("Eyes not changed")
continue
uj5u.com熱心網友回復:
您在此處附加的代碼之前是否有任何形式的“打開檔案”?如果是這樣,您可能需要打開和關閉它才能正確更新和更新。
uj5u.com熱心網友回復:
您正在使用的函式需要時間來連接資料庫并來回發送資料。此代碼異步運行,因此回圈運行并運行通過read_data()以避免這種使用async/await。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/394145.html
標籤:Python
上一篇:函式沒有修改引數?
