目标:
我的目标是每次运行该函数时将最后一个结果与新结果进行比较。
代码:
starttime = time.time()
def countRows():
while True:
#Get number of rows from SQL table
sqlCursor = sqlConnection.cursor()
sqlCursor.execute("Select count(*) from SalesOrder")
rowcount = sqlCursor.fetchone()[0]
print(rowcount)
if rowcount != rowcount:
print("changed")
time.sleep(10.0 - ((time.time() - starttime) % 10.0))
countRows()
Run Code Online (Sandbox Code Playgroud)
细节:
在这里,我从 SQL 表中获取计数。
这是每 10 秒的输出:
1000
1000
1000
1000
Run Code Online (Sandbox Code Playgroud)
如果将一条记录添加到 sql 表中,则计数显然会更改为1001.
当前代码的问题:
该if语句不起作用 - 当数字更改时。它只是打印数字。
题:
虽然该功能每 10 秒运行一次。print("changed")如果值与以前的值不同,如何触发?
您正在将相同的变量与其自身进行比较:
if rowcount != rowcount:
Run Code Online (Sandbox Code Playgroud)
您应该使用一个中间变量来存储以前的计数:例如:
prev_rowcount = None
...
if prev_rowcount != None and prev_rowcount != rowcount:
print("changed")
prev_rowcount = rowcount
Run Code Online (Sandbox Code Playgroud)