我有下一个示例脚本:
import time
import threading
global letter
global lastTime
lastTime = 0
letter = ''
def calculatedTime(var):
if var == 'P':
difTime = (int(time.time()) - lastTime) %60
else:
difTime = 0
print("The time difference is: ", difTime)
if difTime > 5:
i = 'C'
arr = ['P','I','A','A','I','I','P','A','A','I','I','I','I','A','A','A','A','A','A','P','I','I','P']
for letter in arr:
if letter == 1:
lastTime = int(time.time())
time.sleep(6)
th = threading.Thread(target=calculatedTime(letter))
th.start()
if letter == 'P':
print("I'm alive")
elif letter == 'C':
print("clear")
else:
print("Any message")
`
我想要的是计算字符“ P”之间的时间,如果该时间大于5秒,则将变量“字母”的值更改为“ C”。
我尝试不使用导线,返回为calculatedTime函数提供的值,但这会在下一次调用中和线程中更改它,当有大量数据时,会生成递归错误。
预先感谢您的帮助。