在这种情况下,可能是由于缓存或隔离引起的。为了避免这种情况,可以将数据存储在共享数据库中,这样两个客户端窗口都可以访问同一个变量。下面是一个基本的代码示例:
# 导入数据库模块
import sqlite3
# 连接到共享数据库
conn = sqlite3.connect('shared_database.db')
cur = conn.cursor()
# 在共享数据库中创建一个变量表
cur.execute('''CREATE TABLE IF NOT EXISTS shared_vars
(var_name TEXT PRIMARY KEY, var_value TEXT)''')
# 定义并初始化共享变量
my_var = "initial value"
cur.execute("INSERT OR IGNORE INTO shared_vars VALUES (?, ?)", ("my_var", my_var))
# 在第一个客户端窗口中修改共享变量
my_var = "new value"
cur.execute("UPDATE shared_vars SET var_value = ? WHERE var_name = ?", (my_var, "my_var"))
# 在第二个客户端窗口中读取共享变量
cur.execute("SELECT var_value FROM shared_vars WHERE var_name = 'my_var'")
my_var = cur.fetchone()[0]
print(my_var) # 打印 "new value"
在上述代码示例中,我们使用sqlite3模块将共享变量存储在SQLite数据库中。两个客户端窗口都可以通过访问该数据库来修改和读取共享变量。
下一篇:变量在定义后重新定义为垃圾值